Apache CXF介绍:http://cxf.apache.org/docs/index.html 一、使用CXF开发Web Service服务端: 每个Web Service组件需要2个部分:接口和实现类: 1、新建maven工程cxfWebService 工程目录结构: 这是pom.xml文件
Apache CXF介绍:http://cxf.apache.org/docs/index.html
一、使用CXF开发Web Service服务端:
每个Web Service组件需要2个部分:接口和实现类:1、新建maven工程cxfWebService 工程目录结构: 这是pom.xml文件的内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.webService</groupId> <artifactId>cxfWebService</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>cxfWebService</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <cxf.version>2.2.3</cxf.version> </properties> <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>${cxf.version}</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>${cxf.version}</version> </dependency> <!-- Jetty is needed if you're are not using the CXFServlet --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>${cxf.version}</version> </dependency> </dependencies> </project>2、开发一个webservice业务接口,方法使用@WebService修饰。
@WebService public interface HelloWorld { String sayHi(String name); }
3、写一个这个方法的实现类,方法也需要使用@WebService修饰,并指定其中的参数中,如下指定了所需要实现的接口、并指定服务名称。
package com.weir; import java.util.Date; import javax.jws.WebService; @WebService(endpointInterface="com.weir.HelloWorld",serviceName="HelloWorldWs")//指定webservice所实现的接口以及服务名称 public class HelloWorldImpl implements HelloWorld{ public String sayHi(String name) { // TODO Auto-generated method stub return name+"您好!现在时间是:"+new Date(); } }4、暴露Web Service的函数,运行函数暴露Web Service:
package com.weir; import javax.xml.ws.Endpoint; public class ServiceMain { public static void main(String args[]){ HelloWorld hw = new HelloWorldImpl(); // 调用Endpoint的publish方法发布Web Service String address="http://localhost:8080/helloWorldService"; Endpoint.publish(address, hw); System.out.println("Web Service暴露成功!"); } }打开浏览器输入http://localhost:8080/helloWorldService?wsdl,暴露服务成功的情况下可以看到wsdl描述文件
二、开发Web Service客户端:
1、新建java project cxfWebServiceClient 2、使用eclipse的new Web Service Client生成客户端代码 选择刚才的wsdl地址 选择生成的代码位置,我们这边选择新建的工程cxfWebServiceClient 可以看到,我们的工程底下多了这几个文件 3、在客户端写测试代码package com.weir.test; import java.rmi.RemoteException; import com.weir.HelloWorldProxy; public class TestService { public static void main(String args[]){ HelloWorldProxy helloWorldProxy = new HelloWorldProxy(); try { String s = helloWorldProxy.sayHi("weir"); System.out.println("调用webservice:"+s); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }运行main函数,成功调用WebService