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