[zt]Web Service CXF 实战2-代码生成
[b][size=5]Web Service CXF 实战2-代码生成[/size][/b]版权声明:转载时请务必以超链接形式标明文章原文出处和作者信息
个人声明:文章中的内容如果引用了您的原创,给您带来了负面的影响,请联系我
技术支持:如果有任何文章相关的技术问题,请联系[email=bldmickey@gmail.com][size=2][color=#000000]bldmickey@gmail.com[/color][/size][/email]
Eclipse Apache CXF集成 参见<<Eclipse Apache CXF集成>>的相关文档
创建JAX-WS项目[list][*]运行Eclipse[*]菜单选择New->Project...->选择SOA-Tools->JAX-WS WSDL First Project后选择继续[*]在Project Name中输入:cxfstp04,选择Next[*]选择准备好的wsdl文件cxfstp04.wsdl,选择Next[/list][img=606,426]http://120.img.pp.sohu.com/images/blog/2007/9/10/13/27/11588645484.jpg[/img]
[list][*]选择创建Implementation,Server和Client,可选创建Ant脚本和Verbose输出.选择Finish[/list][img=595,412]http://117.photo.pp.sohu.com/images/blog/2007/9/10/13/24/115884befdc.jpg[/img]
[size=5][b]程序代码架构[/b][/size]
[b][size=5][img]http://119.img.pp.sohu.com/images/blog/2007/9/10/13/29/1158865d2bc.jpg[/img][/size][/b]
[list][*]代码描述[/list][table][tr][td]文件名
[/td][td]分类
[/td][td]描述
[/td][/tr][tr][td]Address.java
[/td][td]-impl
[/td][td]schema对应的Address数据类
[/td][/tr][tr][td]Book.java
[/td][td]-impl
[/td][td]schema对应的Book数据类
[/td][/tr][tr][td]BookOrder.java
[/td][td]-impl
[/td][td]schema对应的BookOrder数据类
[/td][/tr][tr][td]BookOrderResponse.java
[/td][td]-impl
[/td][td]schema对应的BookOrderResponse数据类
[/td][/tr][tr][td]BriefUSAddress.java
[/td][td]-impl
[/td][td]schema对应的BriefUSAddress数据类
[/td][/tr][tr][td]Cxfstp04Service.java
[/td][td]-impl
[/td][td]
[/td][/tr][tr][td]ObjectFactory.java
[/td][td]-impl
[/td][td]
[/td][/tr][tr][td]OrderBook.java
[/td][td]-impl
[/td][td]
[/td][/tr][tr][td]OrderBook_OrderBookPort_Client.java
[/td][td]-client
[/td][td]客户端测试代码
[/td][/tr][tr][td]OrderBook_OrderBookPort_Server.java
[/td][td]-server
[/td][td]服务器端测试代码
[/td][/tr][tr][td]OrderBookImpl.java
[/td][td]-impl
[/td][td]
[/td][/tr][tr][td]package-info.java
[/td][td]-impl
[/td][td]
[/td][/tr][tr][td]UKAddress.java
[/td][td]-impl
[/td][td]schema对应的UKAddress数据类
[/td][/tr][tr][td]USAddress.java
[/td][td]-impl
[/td][td]schema对应的USAddress数据类
[/td][/tr][/table]
代码生成注意事项 如果WSDL文档格式不正确,创建的代码可能有问题(代码没有创建成功或者创建的文件不全),建议在创建代码之前可以用命令行做测试:
[list][*]文件语法检查[/list] C:\apps\apache-cxf-2.1\bin>.\wsdlvalidator.bat cxfstp04.wsdl
[list][*]命令行创建代码[/list] 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
输出结果:
[table][tr][td]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
[/td][/tr][/table]
[list][*]wsdl2java.bat的语法[/list][table][tr][td]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>
[/td][/tr][/table]
页:
[1]