2011-06-29 77 views
6

使用wsimport從我的WSDL生成的類沒有equals()hashcode()方法。我如何定製並生成客戶類以獲取equals()hashcode()方法。如何在jaxws中使用wsimport生成equals()和hashcode()方法

我不確定使用JAXB來實現這一點。

在Axis2.0生成的存根中,會生成這些方法,但不知道爲什麼這樣一個基本的東西在JAXWS中不可用!

回答

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如果你正在尋找生成hashCode()和Maven中使用的wsimport的equals()和預期一樣

<wsimport wsdl="@{dir-wsdl}/@{name-wsdl}" 
      taskname="[email protected]{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="[email protected]{name-wsdl}.xml, [email protected]{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> 
+1

如果您指定* how *將類路徑添加到wsimport,它會很有幫助。 – Isaac

相關問題