从我的WSDL使用wsimport
生成的类都没有equals()
和hashcode()
方法。我怎么能自定义和生成的客户端类获得equals()
和hashcode()
方法。
我不知道如何使用JAXB实现这一目标。
在Axis2.0生成的存根生成这些方法,但不知道为什么这样一个基本的东西是无法在JAXWS!
您可以使用JAXB2基础插件生成equals()
和hashcode()
方法:
如果你正在寻找生成hashCode()和Maven中使用的wsimport equals()方法,检查如何产生价值构造这个答案,而且还包括用于生成hashCode()和equals()方法也配置:
它是如何运作的更多信息。我要补充类路径jaxb2-commons
并没有它的wsimport运行没有抱怨,但什么也没有发生!添加类路径,如下之后
<path id="jaxb2-commons.classpath">
<fileset dir="${dir.toolchain}/noarch/jaxb2-basics-dist-0.6.0">
<include name="**/*.jar" />
</fileset>
</path>
下面的wsimport发挥预期
<wsimport wsdl="@{dir-wsdl}/@{name-wsdl}"
taskname="wsimport-@{service}"
destdir="@{dest-dir}"
sourcedestdir="@{source-dest-dir}"
package="@{package}"
keep="@{keep}"
verbose="@{verbose}"
xdebug="@{xdebug}"
xnocompile="@{xnocompile}"
target="2.1">
<binding dir="@{dir-wsdl}" includes="bindings-wsdl-@{name-wsdl}.xml, bindings-schema-@{name-wsdl}.xml" />
<xjcArg value="-Xequals" />
<xjcArg value="-XhashCode" />
<xjcArg value="-XtoString" />
<!-- Generates per-package jaxb.index file which lists all of the schema-derived classes in this package.-->
<xjcArg value="-Xjaxbindex" />
<xjcArg value="-Xsetters" />
</wsimport>