如何生成equals()和hashCode()方法中使用JAXWS方法的wsimport

问题描述 投票:6回答:3

从我的WSDL使用wsimport生成的类都没有equals()hashcode()方法。我怎么能自定义和生成的客户端类获得equals()hashcode()方法。

我不知道如何使用JAXB实现这一目标。

在Axis2.0生成的存根生成这些方法,但不知道为什么这样一个基本的东西是无法在JAXWS!

jaxb jax-ws
3个回答
6
投票

您可以使用JAXB2基础插件生成equals()hashcode()方法:


1
投票

如果你正在寻找生成hashCode()和Maven中使用的wsimport equals()方法,检查如何产生价值构造这个答案,而且还包括用于生成hashCode()和equals()方法也配置:

How do I make wsimport generate constructors?


1
投票

它是如何运作的更多信息。我要补充类路径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>
© www.soinside.com 2019 - 2024. All rights reserved.