资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
二、二、CXF 入门示例入门示例又一 HelloWorld 示例,老套的 HelloWorld 是入门经典。也是基础和必须掌握的,下面看看HelloWorldWebService,很简单。 需要的 jar 包如下: 1、 HelloWorldService 服务器端代码 package com.hoo.service;import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style;/* function:CXF WebService 服务器端 helloWorld 示例* author hoojo* createDate 2011-3-16 上午 08:29:07* file HelloWorld.java* package com.hoo.service* project CXFWebService* blog http:/blog.csdn.net/IBM_hoojo* email hoojo_126.com* version 1.0*/ WebService SOAPBinding(public class HelloWorldService public String sayHello(WebParam(name = “name“) String name) return name + “ say: Hello World “; 要说明的是,上面的服务器端代码运用了 JDK5 的新特性 Annotation,这个非常好用。 需要注意的是,如果不添加SOAPBinding(runtime modeler error还有就是如果 jdk 版本在 1.6 下,也会出现上面的异常。 解决办法有: 1 先用 apt 命令将主程序进行编译,然后生成一些 java 文件 2 升级 JDK 到版本 jdk1.6u17 或以后 2、 发布 HelloWorldService,代码如下:package com.hoo.service.deploy;import javax.xml.ws.Endpoint; import com.hoo.service.HelloWorldService;/* function: 发布 CXF WebService* author hoojo* createDate 2011-3-17 上午 09:24:33* file DeployHelloWorldService.java* package com.hoo.deploy* project CXFWebService* blog http:/blog.csdn.net/IBM_hoojo* email hoojo_126.com* version 1.0*/ public class DeployHelloWorldService /* function:发布 WebService* author hoojo*/ public static void deployService() System.out.println(“Server start “); HelloWorldService service = new HelloWorldService(); String address = “http:/localhost:9000/helloWorld“; Endpoint.publish(address, service);public static void main(String args) throws InterruptedException /发布 WebService deployService(); System.out.println(“server ready “); Thread.sleep(1000 * 60); System.out.println(“server exiting“); /休眠 60 秒后就退出 System.exit(0); 运行上面的 main 函数后,如果没有发现异常。基本信息是这样的:Server start 2011-3-17 10:17:25 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 信息: Creating Service http:/service.hoo.com/ HelloWorldServiceService from class com.hoo.service.HelloWorldService 2011-3-17 10:17:25 org.apache.cxf.endpoint.ServerImpl initDestination 信息: Setting the servers publish address to be http:/localhost:9000/helloWorld 2011-03-17 10:17:25.375:INFO:jetty-7.2.2.v20101205 2011-03-17 10:17:25.468:INFO:Started SelectChannelConnectorlocalhost:9000 server ready 那么你在 WebBrowser 中请求: http:/localhost:9000/helloWorld?wsdl 就可以看到 xml 内容了。 3、 定制客户端调用 WebService 的接口,这个接口中的方法签名和参数信息可以从 wsdl 中的内容看到,代码如下: package com.hoo.service;import javax.jws.WebParam; import javax.jws.WebService;/* function: 客户端调用 WebService 所需要的接口* author hoojo* createDate 2011-3-17 上午 09:00:00* file IHelloWorldService.java* package com.hoo.service* project CXFWebService* blog http:/blog.csdn.net/IBM_hoojo* email hoojo_126.com* version 1.0*/ WebService public interface IHelloWorldService public String sayHello(WebParam(name = “name“) String name); 4、 编写客户端调用 WebService 代码 package com.hoo.client;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import com.hoo.service.IHelloWorldService;/* function:CXF WebService 客户端调用代码* author hoojo* createDate 2011-3-16 上午 09:03:49* file HelloWorldServiceClient.java* package com.hoo.client* project CXFWebService* blog http:/blog.csdn.net/IBM_hoojo* email hoojo_126.com* version 1.0*/ public class HelloWorldServiceClient public static void main(String args) /调用 WebServiceJaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();factory.setServiceClass(IHelloWorldService.class);factory.setAddress(“http:/localhost:9000/helloWorld“);IHelloWorldService service = (IHelloWorldService) factory.create();System.out.println(“result“ + service.sayHello(“hoojo“); 运行上面的程序后,结果如下:2011-3-17 10:23:34 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass 信息: Creating Service http:/service.hoo.com/ IHelloWorldServiceService from class com.hoo.service.IHelloWorldService resulthoojo say: Hello World
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号