WSDL文件:参考附件OrderProcess.wsdl
1. WSDL元素与Java Component之间的映射关系
(1)
(2)
(3)
(4)
(5)
2. WSDL2Java Tool
wsdl2java -impl -server -client -d generate OrderProcess.wsdl
参数说明:
-ant:生成ANT build.xml
-impl:生成服务实现类
-server:生成Server组件,用于启动服务和发布服务
-client:生成Client组件,用于测试服务
-d:生成代码的路径
例如:wsdl2java -impl -server -d generate OrderProcess.wsdl
wsdl2java -client -d src http://www.ignyte.com/webservices/ignyte.whatsshowing.webservice/moviefunctions.asmx?wsdl
该工具的其他可选参数可通过添加-?,或-h,或-help的方式查看。
也可直接查看官方文档:https://cwiki.apache.org/CXF20DOC/wsdl-to-java.html
3. 通过WSDL2Java Tool生成的Client调用服务器端时发生的异常
(1) Can not initialize the default wsdl from...
产生原因:WSDL路径不正确
解决方法:将WSDL文件也考到项目java文件同级中
(2) Error: Two classes have the same XML type name ....
Use @XmlType.name and @XmlType.namespace to assign different names to them...
产生原因:此错误指具有同名的类或 @XMLType.name 值,但它们存在于不同的 Java 包中。
解决方法:@XML.Type.namespace类添加至现有的@XMLType注释以区分XML类型。
例如:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "processOrder", propOrder = {
"arg0"
},namespace="http://generate/sample/pcdp/org/processorder/")
public class ProcessOrder {
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "processOrderResponse", propOrder = {
"_return"
},namespace="http://generate/sample/pcdp/org/processorderreponse/")
public class ProcessOrderResponse {
}
4. WSDL文件有效性验证
wsdlvalidator http://localhost:9082/MovieService?wsdl
常用的WSDL文件操作工具客查看安装目录下的bin目录下的脚本。