2011-06-29 65 views
6

Các lớp được tạo từ WSDL của tôi bằng cách sử dụng wsimport không có phương thức equals()hashcode(). Làm cách nào để tùy chỉnh và tạo các lớp khách hàng để có được các phương thức equals()hashcode().Cách tạo phương thức equals() và hashcode() bằng cách sử dụng wsimport trong jaxws

Tôi không chắc chắn về việc sử dụng JAXB để đạt được điều này.

Trong phần tạo ra Axis2.0, các phương thức này được tạo nhưng không chắc tại sao một thứ cơ bản như vậy không có sẵn trong JAXWS!

Trả lời

5

Bạn có thể sử dụng JAXB2 Khái niệm cơ bản Plugin để tạo equals()hashcode() phương pháp:

+0

Cảm ơn, tôi sẽ kiểm tra này với wsimport, lúc đó bạn có thể vui lòng đưa ra một ví dụ nếu bạn có một. – kiri

+0

Nó hoạt động, cảm ơn rất nhiều – kiri

+1

502 Bad Gateway .. là nó chỉ vài ngày? –

1

Thông tin thêm về cách thức hoạt động. Tôi phải thêm đường dẫn lớp vào jaxb2-commons và không cần chạy wsimport nào mà không phàn nàn nhưng không có gì xảy ra! Sau khi thêm classpath như sau

<path id="jaxb2-commons.classpath"> 
    <fileset dir="${dir.toolchain}/noarch/jaxb2-basics-dist-0.6.0"> 
     <include name="**/*.jar" /> 
    </fileset> 
</path> 

các wsimport dưới đây làm việc như mong đợi

<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

Sẽ hữu ích nếu bạn chỉ định * cách * bạn đã thêm đường dẫn lớp vào wsimport. – Isaac

1

Nếu bạn đang tìm kiếm để tạo ra hashcode() và equals() sử dụng wsimport trong maven, kiểm tra câu trả lời này về cách tạo nhà xây dựng giá trị, mà còn bao gồm các cấu hình để tạo ra hashcode() và equals() quá:

How do I make wsimport generate constructors?

Các vấn đề liên quan