文档详情

CXF框架实现webservice教程.doc

发布:2018-12-28约9.53千字共12页下载文档
文本预览下载声明
PAGE \* MERGEFORMAT 12 CXF框架实现webservice教程 1 使用CXF实现一个简单的WEB SERVICE 首先介绍如何用CXF实现一个基本的hello world 首先到apache官网去下载CXF的开发jar包 HYPERLINK //cxf/2.4.3/apache-cxf-2.4.3.zip //cxf/2.4.3/apache-cxf-2.4.3.zip 创建cxf webservice服务器端普通java项目,叫做HelloCxfServer,把必须用到的jar文件通过构建路径引入,为了省事,可以直接把所有的jar引入 此处注意:如果是jdk1.6启动服务器会发生如下错误 JAXB 2.1 API is being loaded from the bootstrap classloader, but this RI (from jar:file:/E:/javaLib/cxf_all_jar/jaxb-impl-.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class) needs 2.2 API. Use the endorsed directory mechanism to place jaxb-api.jar in the bootstrap classloader. 这是由于jdk1.6的jar包和cxf的jar包冲突造成的, 需要把cxf lib中的endorsed目录拷入到D:\Program Files\Java\jdk1.6.0\jre\lib目录下 ?创建一个接口HelloWorld和一个实现类HelloWorldImpl,只提供一个成员方法,叫做sayHello,给接口和实现类添加注解@WebService,这是最基本的注解 /test/HellWorld.java源码 package test; import javax.jws.WebService; @WebService public interface HelloWorld { String sayHello(String name); } /test/HelloWorldImpl.java源码 package test; import javax.jws.WebService; @WebService public class HelloWorldImpl implements HelloWorld { @Override public String sayHello(String name) { System.out.println(sayHello方法被调用...); return hello, + name; } } CXF自带了一个Web Service容器Jetty,这是一个WEB容器,类似于tomcat,能够直接发布web service,下面创建一个发布服务类MainServer,执行这个类就会运行服务器,看到控制台输出日志信息,表示启动服务成功 /test/MainServier.java源码 package test; import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxws.JaxWsServerFactoryBean; public class MainServer { public static void main(String[] args) { //创建一个JaxWs服务器工厂 JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean(); //设置发布类 factory.setServiceClass(HelloWorldImpl.class); //设置服务发布的地址 factory.setAddress(http://localhost:6666/MyCxfService); //根据设置创建一个服务器 Server server = factory.create(); //启动服务器 server.start(); } } 发布成功以后,可以通过浏览器去查看生成的WSDL, 在浏览器地址栏输入 HYPERLINK http://localhost:6666/MyCxfService?wsdl http://localhost:6666/MyCxfService?wsdl,效果如下: 下面创建访问WebService的客户端,可以重新创建一个项目,也可以就在这个项目里实现,我下面在同一
显示全部
相似文档