上一节中已经成功的发布了一个服务端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.setServiceClass(HelloWorldService.class);
bean.setAddress("http://localhost:9090/helloWorldService");
HelloWorldService helloWorldService = (HelloWorldService)bean.create();
String result = helloWorldService.sayHello("Kevin");
System.out.println(result);
}
}
小结:这种调用service的好处在于调用过程非常简单,就几行代码就完成一个webservice的调用,但是客户端也必须依赖服务器端的接口,这种调用方式限制是很大的,要求服务器端的webservice必须是java实现--这样也就失去了使用webservice的意义
查看了官方的文档后,发现其实是可以实现不依赖服务器端接口来完成调用的,如下
使用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]);
}
}
分享到:
相关推荐
cxf客户端调用axis服务端流程
CXF客户端调用例子,本例子开发语言为JAVA,包内包含服务端跟客户端
springboot整合CXF发布webservice和客户端调用 项目中每个类都有详细的注释,保证都能看懂,不失为一个学习springboot整合cxf来学习webservice发布调用的好例子
cxf客户端调用axis服务端流程.docxcxf客户端调用axis服务端流程.docx
CXF 开发手册, 包括下载,配置,客户端调用远程服务以及发布自己的接口为服务,供别人调用的全过程
CXF入门教程(2) -- 简单客户端示例文章附带代码,为使用方便,将service和client代码合并到一个工程中。原文地址http://blog.csdn.net/neareast/article/details/7717568
Java 调用webservice cxf客户端调用demo和服务端,包含jar包,服务端发布后直接用客户端调用
用CXF作为客户端调用webService的demo:本人亲测可用,eclipse工程项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
使用CXF发布和调用webservice之HelloWorld入门使用CXF发布和调用webservice之HelloWorld入门
内含java调用cxf发布的webserice接口的极简案例,同时压缩包中有 cxf-core-3.0.0.jar,cxf-rt-bindings-soap-3.0.0.jar,cxf-rt-databinding-jaxb-3.0.0.jar,cxf-rt-frontend-jaxws-3.0.0.jar,cxf-rt-frontend-...
apache-cxf-2.7.7以及cxf客户端所需要的jar包,命令生成webservice客户端
Springboot整合CXF发布Web service和客户端调用(用户和密码验证)打开及用
NULL 博文链接:https://fengfan2008.iteye.com/blog/509342
cxf客户端调用webservice所需jar包
是否和调用者实际传入的口令一致,由cxf完成. web.xml ------------------------- 客户端: ------------------------- client.TrialClient 其中配置了对传出请求的拦截器用以设置口令 设置口令程序: ...
1.使用Java 2.用cxf开发webservice ...客户端也需要接口类文件和pojo,和cxf客户端xml 但是没有接口的实现类,就是为了去服务端来调用的。 具体有不懂可以问我 给我发消息, 劳烦评价 ,请大家支持原创 禁止转载
web service之第一个小demo helloworld!
webservice的cxf框架客户端调用所需jar包,不要删除里面的jar包,直接放在lib下。亲测可用。
使用apache cxf开发一个入门小程序
本示例只是一个cxf的简单的一个helloWorld程序,运行时先运行webServiceApp.java,再在地址栏中输入http://localhost:8080/helloWorld,如果在浏览器中有一串xml输出则成功,然后再运行HelloWorldClient.java文件...