CXF学习笔记(2)-HelloWorld!-客户端调用
来源:互联网 发布:软件开发需求统计表 编辑:程序博客网 时间:2024/05/12 02:33
上一节中已经成功的发布了一个服务端webservice,这一部分将默认客户端调用webservice
这里我们重新建立了一个新的工程CXF-Client,把上一节中列举的jar包都搞过来即可,调用方式采用了和RMI类似的机制,即客户端直接服务器端提供的服务接口(interface),CXF通过运行时代理生成远程服务的代理对象,在客户端完成对webservice的访问
几个必填的字段:setAddress-这个就是我们发布webservice时候的地址,保持一致
HelloWorldService:需要服务器端提供单独的Jar文件过来
- package com.crazycoder2010.webservice.cxf.client;
- import org.apache.cxf.interceptor.LoggingInInterceptor;
- import org.apache.cxf.interceptor.LoggingOutInterceptor;
- import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
- import com.crazycoder2010.webservice.cxf.server.HelloWorldService;
- 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:9090/helloWorldService");
- HelloWorldService helloWorldService = (HelloWorldService)bean.create();
- String result = helloWorldService.sayHello("Kevin");
- System.out.println(result);
- }
- }
运行输出:
- 2011-8-9 21:32:20 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
- 信息: Creating Service {http://server.cxf.webservice.crazycoder2010.com/}HelloWorldServiceService from class com.crazycoder2010.webservice.cxf.server.HelloWorldService
- 2011-8-9 21:32:41 org.apache.cxf.interceptor.AbstractLoggingInterceptor log
- 信息: Inbound Message
- ----------------------------
- ID: 1
- Response-Code: 200
- Encoding: UTF-8
- Content-Type: text/xml;charset="utf-8"
- Headers: {Content-type=[text/xml;charset="utf-8"], Transfer-encoding=[chunked]}
- Payload: <?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:sayHelloResponse xmlns:ns2="http://server.cxf.webservice.crazycoder2010.com/"><return>Hello Kevin</return></ns2:sayHelloResponse></S:Body></S:Envelope>
- --------------------------------------
- Hello Kevin
查看了官方的文档后,发现其实是可以实现不依赖服务器端接口来完成调用的,如下
使用JaxWsDynamicClientFactory类,只要指定服务器端wsdl文件的位置,然后指定要调用的方法和方法的参数即可,so simple!!
- package com.crazycoder2010.webservice.cxf.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:9090/helloWorldService?wsdl");
- Object[] result = client.invoke("sayHello", "KEVIN");
- System.out.println(result[0]);
- }
- }
0 0
- CXF学习笔记(2)-HelloWorld!-客户端调用
- CXF学习笔记(2)-HelloWorld!-客户端调用
- CXF学习笔记(2)-HelloWorld!-客户端调用 .
- CXF学习笔记(2)-HelloWorld!-客户端调用
- CXF客户端调用--HelloWorld!
- CXF客户端调用--HelloWorld!
- CXF 2.0 学习笔记-2(客户端)
- CXF 2.0 学习笔记-2(客户端)
- CXF学习笔记(1)-HelloWorld!-发布webservice
- CXF学习笔记(4)-HelloWorld!-安全认证
- CXF学习笔记(1)-HelloWorld!-发布webservice
- CXF学习笔记(1)-HelloWorld!-发布webservice .
- CXF学习笔记(4)-HelloWorld!-安全认证
- CXF学习笔记(1)-HelloWorld!-发布webservice
- CXF学习笔记(1)-HelloWorld!-发布webservice
- CXF 客户端 远程调用WebService(笔记)
- WebService CXF学习(入门篇2):HelloWorld
- WebService CXF学习:HelloWorld
- 生活水平哪样高?
- CXF学习笔记(1)-HelloWorld!-发布webservice
- Android自定义签名文件 testkey.pk8 testkey.x509.pem
- poj 1260 dp
- 读书笔记之head first设计模式1
- CXF学习笔记(2)-HelloWorld!-客户端调用
- oracle express edition 11g hibernate连接配置
- Maven Artifact 导航
- C语言实现的链表结构
- 贪吃蛇
- Png的使用技巧
- oracle sql语句
- Matrixtsl有趣的电子积木网络连接板
- ural 2004. Scientists from Spilkovo 构造