您的位置:首页 > 其它

wsimport使用小结

2012-12-13 20:01 162 查看
背景:该项目是访问客户的web service,必须从wsdl生成client。选来选取最终决定用jax-ws
版本是JDK6_37自带的jax-ws2.1.1

一 产生若干 @XMLElementRefs http://chenjianjx.iteye.com/blog/1066577这篇日志里说有重名的,可是改了名字也没啥影响 我比较了产生refs和不产生refs的情况,我发现凡是element下面定义了xsd:group maxOccurs="unbound"的才会产生这样情况。既然element maxOccurs="unbounded" 那么下面的group是不是unbound都没什么意义,遂改成1, @XMLElementRefs消失,不知道实际运行起来会不会有影响,但我相信应该不会。

二 默认wsimport生成port使用Holder来处理参数,请求参数需要RequestWrapper,返回需要ResponseWrapper,但是貌似这不是给程序员使用的,更像是给机器使用的,还是需要一个个的组装参数和返回值
遂在wsdl中插入如下代码

<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
<jaxws:enableAsyncMapping>false</jaxws:enableAsyncMapping>
</jaxws:bindings>
顾名思义,禁止wrapperStyle,下面一行是禁止生成异步代码,写一起了,怕以后要用忘了。

这样生成的port传参返回值就是pojo了。

这样做对不对,谁有更好的建议,欢迎留言。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: