在项目开发中,由于需要与其他的系统对接,然而其他系统的可能是采用C#或者asp.net的语言开发的,所以我们需要通过服务端产生的wsdl来生产客户端。
基于上http://liuwuhen.iteye.com/admin/blogs/1666189采用cxf开发产生的服务端,来实现客户端开发。
1.通过服务端产生的wsdl文件,生成客户端代码 ,cxf的中可以通过wsdl2java命令,自动生成客户端代码。
首先下载apache-cxf-2.0.13源文件,进入到D:\apache-cxf-2.0.13\bin目录,执行
wsdl2java -d src -all HelloWorld.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名。
-d 指定要产生代码所在目录。
-client 生成客户端测试web service的代码。
-server 生成服务器启动web service的代码。
-impl 生成web service的实现代码。
-ant 生成build.xml文件。
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object。
详细用法见:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
由于是通过命令自动生成的,所以产生了代码比较的多,所以我们需要删除XXXService.java,XXX_Client.java、XXX_Server.java
如果是生成服务端代码时,需要注意:
修改以XX_PortTypeImpl.java的结尾的文件,是接口类的实现类,其中也有一行注解:要把这里的
wsdlLocation = "file:HelloWorld.wsdl",
指定wsldLocation的路径,一般放在本地工程的src下面。
在这里生成的客户端接口如下:
@WebService(targetNamespace = "http://cxf.liuwuhen.com/", name = "IHelloWorld")
public interface IHelloWorld {
@RequestWrapper(localName = "sayHello", targetNamespace = "http://cxf.liuwuhen.com/", className = "com.liuwuhen.cxf.SayHello")
@ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://cxf.liuwuhen.com/", className = "com.liuwuhen.cxf.SayHelloResponse")
@WebMethod
public void sayHello(
@WebParam(name = "arg0", targetNamespace = "")
java.lang.String arg0
);
}
2.编写相关的测试方法。
基于webservice的客户端测试方法有很多种,可用采用工具例如:SOAPUI,也可以自己编写相关的测试代码。
在这里我采用的是编程式,编写客户端相关测试代码。
public static void main(String[] args)
{
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// 注册WebService接口
factory.setServiceClass(IHelloWorld.class);
// webservice请求地址
String wsdlAdder = "http://localhost:8080/cxf-test/services/sayHello";
// 发布接口
factory.setAddress(wsdlAdder);
IHelloWorld helloWorld = (IHelloWorld) factory.create();
helloWorld.sayHello("cxf hello");
}
3.运行其客户端java类,即可输出 "say cxf hello".
分享到:
相关推荐
cxf 开发webservice客户端 代码经过测试
CXF开发webservice客户端,详细步骤 希望对大家有所帮助
03.使用CXF开发WebService客户端
cxf开发webservice客户端和服务器端,详细的cxf使用指令,有用的示例代码及注释。
2.用cxf开发webservice 3.这个服务端和客户端的小demo 在服务端 对外开放接口服务,然后在客户端 调用服务端的方法, 实现客户端(一个javaweb项目)对服务端(javaweb项目)方法的调用, 实际上就是发送和接收消息...
springboot整合CXF发布webservice和客户端调用 项目中每个类都有详细的注释,保证都能看懂,不失为一个学习springboot整合cxf来学习webservice发布调用的好例子
使用cxf wsdl2java生成webservice客户端命令
WebService开发客户端 cxf方式
CXF开发webservice服务端,希望对大家有所帮助
使用cxf+spring框架开发webservice的客户端与服务端代码,用于连接两个项目
NULL 博文链接:https://jin8000608172.iteye.com/blog/1768378
cxf3.2.0作为服务端或客户端,发布webservice或者调用webservice所需的最少jar包。
CXF框架webservice教程,webservice客户端代码开发教程。图文并茂
CXF 一个完整的webService(整合客户端和服务端),自己开发,自己测试,完全有效,整合集成了客户端和服务端双向的工能。
Webservice接口,Cxf写的客户端, 是java项目,直接main方法运行. 开发环境:32位jdk1.7+Cxf3.1.4+tomcat7, 开发工具:myeclipse8.5. 成功访问服务端,并传送参数。测试通过。
使用cxf和spring开发基于https的webservice服务端以及客户端样例
NULL 博文链接:https://sxlkk.iteye.com/blog/1944831
cxf开发webservice简单实例:包括服务端与客户端并所有需要的jar,不要分啦。