CXF-01: WebService的第一个例子

HelloWorld.java:

1 package com.war3.ws;
2
3 import javax.jws.WebService;
4
5 @WebService
6 public interface HelloWorld {
7
8     String sayHi(String name);
9 }

HelloWorldWS.java:

 1 package com.war3.ws.impl;
 2
 3 import javax.jws.WebService;
 4 import com.war3.ws.HelloWorld;
 5
 6 @WebService(endpointInterface="com.war3.ws.HelloWorld")
 7 public class HelloWorldWS implements HelloWorld {
 8
 9     @Override
10     public String sayHi(String name) {
11         return name+",你好!";
12     }
13
14 }

ServerMain.java:

 1 package com.war3.ws.server;
 2
 3 import javax.xml.ws.Endpoint;
 4
 5 import com.war3.ws.HelloWorld;
 6 import com.war3.ws.impl.HelloWorldWS;
 7
 8 public class ServerMain {
 9
10     public static void main(String[] args) {
11         HelloWorld hw = new HelloWorldWS();
12         Endpoint.publish("http://localhost:8080/hello", hw);
13         System.out.println("WebService暴露服务成功!");
14     }
15 }

运行ServerMain.java,控制台打印"WebService暴露服务成功!"。

浏览器输入:http://localhost:8080/hello?wsdl,回车得到:

 1 <wsdl:definitions xmlns:ns1="http://ws.war3.com/" xmlns:ns2="http://schemas.xmlsoap.org/wsdl/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.ws.war3.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="HelloWorldWSService" targetNamespace="http://impl.ws.war3.com/">
 2 <wsdl:import location="http://localhost:8080/hello?wsdl=HelloWorld.wsdl" namespace="http://ws.war3.com/"></wsdl:import>
 3 <wsdl:binding name="HelloWorldWSServiceSoapBinding" type="ns1:HelloWorld">
 4 <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
 5 <wsdl:operation name="sayHi">
 6 <soap:operation soapAction="" style="document"/>
 7 <wsdl:input name="sayHi">
 8 <soap:body use="literal"/>
 9 </wsdl:input>
10 <wsdl:output name="sayHiResponse">
11 <soap:body use="literal"/>
12 </wsdl:output>
13 </wsdl:operation>
14 </wsdl:binding>
15 <wsdl:service name="HelloWorldWSService">
16 <wsdl:port binding="tns:HelloWorldWSServiceSoapBinding" name="HelloWorldWSPort">
17 <soap:address location="http://localhost:8080/hello"/>
18 </wsdl:port>
19 </wsdl:service>
20 </wsdl:definitions>

然后我们再新建一个Java工程WebService_Client:

利用wsdl2java命令和wsdlurl参数,我们在src目录下生成了一些代码:

然后我们写一个类ClientMain.java:

 1 package com.war3.ws.client;
 2
 3 import com.war3.ws.HelloWorld;
 4 import com.war3.ws.impl.HelloWorldWSService;
 5
 6 public class ClientMain {
 7
 8     public static void main(String[] args) {
 9         HelloWorldWSService factory = new HelloWorldWSService();
10         HelloWorld hw = factory.getHelloWorldWSPort();
11         System.out.println(hw.sayHi("tom"));
12     }
13 }

运行代码,控制台输出“tom,你好!”。

时间: 2024-12-17 19:38:04

CXF-01: WebService的第一个例子的相关文章

使用CXF做webservice整合现有项目的例子

从网上看了很多CXF的资料,大部分都是单独的作为一个webservice项目,对于在现有的spring项目上提供webservice服务的例子基本没有找到. 我做的这个例子是介绍怎么把cxf整合到现有的spring项目中,现在只做到可以传简单的字符串和JAVABEAN,复杂的以后研究.       这是例子的下载地址:一个简单的CXF例子      一,应用cxf应该先把该服务所需要的架包加载进项目中. 对于一个已经搭建好的spring项目,我做的项目中所缺少的架包是 cxf-2.4.3.jar

CXF之webservice

使用 CXF 做 webservice 简单例子 Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的服务器上,例如 Jboss.IBM® WebSphere® 或 BEA WebLogic. 该框架提供了以下功能: Web 服务标准支持:CXF 支持以下 Web 服务标准: Java API for XML Web Se

搭建web项目结合spring+cxf的webservice服务

服务端: 服务端和客户端都需要引入包 1 antlr-2.7.7.jar 2 aopalliance-1.0.jar 3 asm-3.3.jar 4 commons-collections-3.2.1.jar 5 commons-lang-2.6.jar 6 commons-logging-1.1.1.jar 7 cxf-2.4.2.jar 8 cxf-manifest.jar 9 cxf-xjc-boolean-2.4.0.jar 10 cxf-xjc-bug671-2.4.0.jar 11

Apache CXF实现WebService入门教程(附完整源码)

Apache CXF实现WebService非常简单实用,只需要几步就可以实现一个简单的web service. 首先我们需要新建一个maven项目,在pom中添加依赖和jetty作为测试的web service的web容器. 如下是测试用到的pom文件内容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu

04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

 1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mvc结构 DispatcherServlet:中央控制器,把请求给转发到具体的控制类 Controller:具体处理请求的控制器(配置文件方式需要配置,注解方式不用配置) handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略 ModelAndView:服务

CXF创建webservice客户端和服务端

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui0317/article/details/9320053 一.CXF的介绍 Apache CXF是一个开源的WebService框架,CXF大大简化了Webservice的创建,同时它继承了XFire的传统,一样可以和spring天然的进行无缝的集成.CXF框架是一种基于servlet技术的SOA应用开发

构建基于CXF的WebService服务(3)-- 利用拦截器实现权限验证

CXF中的拦截器分为in拦截器和out拦截器,又有客户端拦截器和服务端拦截器. 拦截器使用流程:客户端(out)-> 服务端(in)->处理业务->服务端(out)->客户端(in),并不是每一步都需要拦截器.在这里我们用到的是客户端Out拦截器和服务端in拦截器.服务端in拦截器检查用户级权限,客户端out浏览器发送用户信息给服务端. 1.创建服务端验证 JaxWsServerFactoryBean或Endpoint都可以通过getInInterceptors方法,向WebSer

基于Spring和CXF的webservice开发环境搭建

使用CXF发布webservice服务时,规范的做法是先书写一个接口,用以声明服务类型. 基于Spring和CXF开发web service的框架搭建 一.创建web项目 Eclipse中新建一个dynamic webproject,命名为:CXFTest 二.导入需要的jar包 把下载的CXF项目的解压缩文件中lib文件夹下的所有jar包拷贝到WebContent->WEB-INF->lib文件夹下 三.创建服务接口 在Java resource->src目录下新建package包:c

Apache CXF实现WebService开发(一)

Apache CXF简介 Apache CXF 是一个开源的 Services 框架,CXF 帮助您利用 Frontend 编程 API 来构建和开发 Services ,像 JAX-WS .这些 Services 可以支持多种协议,比如:SOAP.XML/HTTP.RESTful HTTP 或者 CORBA ,并且可以在多种传输协议上运行,比如:HTTP.JMS 或者 JBI,CXF 大大简化了 Services 的创建,同时它继承了 XFire 传统,一样可以天然地和 Spring 进行无缝