创建JAX-WS项目
- 运行Eclipse
- 菜单选择New->Project...->选择SOA-Tools->JAX-WS WSDL First Project后选择继续
- 在Project Name中输入:cxfstp04,选择Next
- 选择准备好的wsdl文件cxfstp04.wsdl,选择Next
- 选择创建Implementation,Server和Client,可选创建Ant脚本和Verbose输出.选择Finish
程序代码架构
- 代码描述
文件名 |
分类 |
描述 |
Address.java |
-impl |
schema对应的Address数据类 |
Book.java |
-impl |
schema对应的Book数据类 |
BookOrder.java |
-impl |
schema对应的BookOrder数据类 |
BookOrderResponse.java |
-impl |
schema对应的BookOrderResponse数据类 |
BriefUSAddress.java |
-impl |
schema对应的BriefUSAddress数据类 |
Cxfstp04Service.java |
-impl |
|
ObjectFactory.java |
-impl |
|
OrderBook.java |
-impl |
|
OrderBook_OrderBookPort_Client.java |
-client |
客户端测试代码 |
OrderBook_OrderBookPort_Server.java |
-server |
服务器端测试代码 |
OrderBookImpl.java |
-impl |
|
package-info.java |
-impl |
|
UKAddress.java |
-impl |
schema对应的UKAddress数据类 |
USAddress.java |
-impl |
schema对应的USAddress数据类 |
代码生成注意事项
如果WSDL文档格式不正确,创建的代码可能有问题(代码没有创建成功或者创建的文件不全),建议在创建代码之前可以用命令行做测试:
- 文件语法检查
C:\apps\apache-cxf-2.1\bin>.\wsdlvalidator.bat cxfstp04.wsdl
- 命令行创建代码
C:\apps\apache-cxf-2.1\bin>.\wsdl2java.bat -compile -classdir C:\apps\apache-cxf-2.1\lib -impl -server -client -d D: -verbose cxfstp04.wsdl
这里输出的目录是D:, 其中-verbose表示详细的输出,因为Eclipse集成的过程中,Verbose output的输出不容易发现, 所以通过命令行比较容易debug
输出结果:
Loading FrontEnd jaxws ... Loading DataBinding jaxb ... wsdl2java -compile -classdir C:\apps\apache-cxf-2.1\lib -impl -server -client -d D: -verbose cxfstp04.wsdl wsdl2java - 2.1-incubator-SNAPSHOT |
- wsdl2java.bat的语法
wsdl2java -fe <frontend name>* -db <data binding name>* -wv <[wsdl version]>* -p <[wsdl namespace =]Package Name>* -sn <[wsdl namespace =]Package Name> -b <binding-name>* -catalog <catalog-file-name> -d <output-directory> -compile -classdir <compile-classes-directory> -impl -server -client -all -defaultValues<=class name for DefaultValueProvider> -ant -nexclude <schema namespace [= java packagename]>* -exsh <enable extended soap header message binding (true, false)> -dns <Default value is true> -dex <Default value is true> -validate -wsdlLocation <wsdlLocation attribute> -xjc<xjc arguments> -h -v -verbose -quiet <wsdlurl> |