利用wsdl2java生成 Webservice 客户端的调用

1.下载完 apache-cxf-2.7.5.zip文件,并解压

在bin目录下 执行 wsdl2java -encoding UTF-8 -all  xxx.wsdl  ,生成了代码之后,拷贝到eclipse中发现报错:

The constructor Service(URL, QName, WebServiceFeature[]) is undefined

 参考http://blog.csdn.net/luckarecs/article/details/7233369 知道 原因是CXF自带的javax.xml.service 版本高过 jdk的javax.xml.service。 解决办法是加上 -frontend jaxws21

 

于是 修改为 wsdl2java -encoding UTF-8 -all -frontend jaxws21 xxx.wsdl

 

2详细参数说明:

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. 

 

 

3.soapui 工具调用 Webservice 时,一直报错

 javax.xml.bind.UnmarshalException: unexpected element (uri:“”, local:“arg0”),最后网上找了下,才知道

我已经在方法的形参上面加了@WebParam(name="sampleId")注解,但是soapui工具生成的request editor里面还是 arg0,改成 sampleId之后,一切Ok

 

你可能感兴趣的:(利用wsdl2java生成 Webservice 客户端的调用)