本资料为webservice接口入门例子,主要描述通过CXF方式开发webservice接口,包含了服务端Server接口的开发与对外发布以及客户端Client调用过程。
Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构。它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量级容器中,以及部署在更高级的服务器上,例如 Jboss、IBM® WebSphere® 或 BEA WebLogic。
接口服务器工程示意图
客户端工程截图
运行截图
tomcat的http端口需要设置为5071,并且访问路径需要带上项目名称:webServiceServer
另外webServiceClient项目的Client.java和Client3.java需要修改请求路径,否则无法访问到webservice服务
Client.javapackage com.zhos.client;
import com.zhos.webservice.cfx.server.HelloWorldService;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class Client {
public static void main(String[] args) {
JaxWsProxyFactoryBean bean = new JaxWsProxyFactoryBean();
bean.getInInterceptors().add(new LoggingInInterceptor());
bean.getInFaultInterceptors().add(new LoggingOutInterceptor());
bean.setServiceClass(HelloWorldService.class);
bean.setAddress("http://localhost:5071/webServiceServer/webservice/helloWorldService");
HelloWorldService helloWorldService = (HelloWorldService) bean.create();
String result = helloWorldService.sayHello("Kevin", "password");
System.out.println(result);
}
}
Client3.javapackage com.zhos.client;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
public class Client3 {
public static void main(String[] args) throws Exception {
JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
Client client = clientFactory.createClient("http://localhost:5071/webServiceServer/webservice/helloWorldService?wsdl");
Object[] result = client.invoke("sayHello", new Object[]{"KEVIN", "zuidaima"});
System.out.println(result[0]);
}
}
运行后截图
webServiceClient项目的jar包就是webServiceServer的jar包,复制一份即可。
由最代码官方编辑于2017-6-6 18:39:45