1.接口地址:http://10.10.2.10/serviceportal/ws/lotteryResult?wsdl
2.lib包版本为:
spring版本 4.2.8.RELEASE
cxf版本 3.1.6
3.采用w2dl生成
以下这些源自网上:
a.环境配置
新建CXF_HOME C:\ProgramFiles(my)\apache-cxf-2.7.2
在CLASSPATH %CSF_HOME%\lib
在PATH中添加 %CSF_HOME%\bin
验证:
操作 win+R ---> cmd ---> 回车 ---》 wsdl2java -v
结果 显示 wsdl2java - Apache CXF 2.7.2
证明配置成功
b.wsdl2java工具使用
操作 win+R ---> cmd ---> 回车 ---》 wsdl2java -frontend jaxws21 -p com.jiuzi.HelloCXF -d D:\ -client -autoNameResolution
http://10.10.2.10/serviceportal/ws/lotteryResult?wsdl
结果 将会在D盘根目录下生成HelloCXF的客户端代码,将其复制到项目中便可使用。
c.参考它的文档看这个工具的具体参数的用法
wsdl2java用法:
wsdl2java -p com -d src -all aa.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, and an Ant build.xml file.
4.采用JaxWsProxyFactoryBean编写
a.web 项目集成 spring。
b.贴一下client代码。
public class Client {
public static void main(String[] args) {
/* 调用方法一
* //创建web服务代理工厂
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
//设置要调用的web服务服务端发布地址
factory.setAddress(" http://10.10.2.10/serviceportal/ws/lotteryResult?wsdl ");
//设置要调用的web服务
factory.setServiceClass(LotteryResult.class);
//创建web服务对象
Object o = factory.create();
LotteryResult service = (LotteryResult)o;
//通过对象调用web服务的方法
String response=service.getResultStatus("11");
System.out.println("结果:"+response);*/
/*调用方法二 结合spring*/
ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"jaxws-cxf-client.xml"});
LotteryResult lotteryservice = (LotteryResult)context.getBean("lotteryResultService");
String response=lotteryservice.getResultStatus("12");
System.out.println("结果:"+response);
}
}