1、服务端:
a. 以Tomcat发布WebService服务为例,首先添加jar包,这里我使用的maven,所以添加maven依赖就好了
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.10</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.10</version>
</dependency>
b.写好WebService接口及其实现类,比如com.test.service.HelloService(接口) 、com.test.service.impl.helloServiceImpl(实现)
c.在web.xml中添加Servlet
<servlet>
<servlet-name>cxf</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxf</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
d.这里我使用的Spring4.0以上版本,cxf版本是3.1.10版本,经验证,在Spring配置文件中只需要加入如下
<jaxws:endpoint id="helloService" implementor="com.test.service.impl.helloServiceImpl" address="/helloService">
<jaxws:binding>
<soap:soapBinding version="1.2"/>
</jaxws:binding>
</jaxws:endpoint>
e.启动Tomcat,在地址栏输入 http://localhost:8080/工程名称/webservice即可以看到WebService发布列表
2.cxf生成WebService客户端代码并调用
a.在官网上下载apache-cxf-3.1.10.zip,解压至某一路径,比如D盘D:\apache-cxf-3.1.10,然后添加环境变量,CXF_HOME=D:\apache-cxf-3.1.10
b.在Path后面加上 %CXF_HOME%/bin;
c.在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功
d.然后再命令行输入wsdl2java -p 客户端包名(比如com.test.webservice) -d E:\test\webserviceclient\src WSDL地址(比如http://localhost:8080/client/helloService?wsdl),之后回车
e.在客户端路径刷新下,会看到生成的代码,如果想要调用服务端,找到那个以Port_client结尾的那个类,程序里面已经写好了一个main方法,只需要我们将参数赋为实际的值,然后启动程序即可调用