我有一個遺留的使用class mypackage.Foo的Java應用程序。我希望該應用程序使用返回Foo實例的Web服務。要連接到這個Web服務,我使用WSDL上的wsimport來生成工件,並且它給了我另一個Foo.java文件。理想情況下,我想告訴wsimport生成使用原始Foo的工件,並且不生成任何其他Foo文件,但我還沒有找到辦法做到這一點。如何協調Java應用程序中的兩個Foo文件?看來我的選擇是:如何協調Java Web服務中原始文件和生成文件之間的衝突?
1)把生成的Foo文件放在另一個包中。但隨後將otherpackage.Foo分配給mypackage.Foo變量失敗
2)使用生成的Foo而不是原始Foo。在某些情況下,這似乎是最好的解決方案,但最初的Foo具有不在生成的Foo中的功能。此外,進行應用程序範圍的變更是不可行的。
3)使用第一個選項,並編寫一個方法手動將otherpackage.Foo的字段複製到mypackage.Foo中。如果一切都失敗了,這將是我所做的,但似乎非常不雅。
我確定我錯過了一個簡單的最佳實踐。感謝任何見解!
想,如果你曾經得到一個滿意的答覆這個使用的wsimport?我有同樣的問題(http://stackoverflow.com/questions/2642583/correct-use-of-wsdl-generated-sources) – 2010-04-20 04:19:29
一個同事遊戲我一個工作的解決方案,它使用綁定將複雜的WSDL類型映射到本地類,基本告訴wsimport不要爲這些類生成存根,並使用本地類。這個例子使用了maven,所以我不確定規範版本是什麼樣的,但關鍵是一個bindings.xml文件,其條目如 – RHH 2010-04-21 17:51:54
jxb:bindings version =「1.0」xmlns:jxb =「http:/ /java.sun.com/xml/ns/jaxb「xmlns:xs =」http://www.w3.org/2001/XMLSchema「> - - JXB:綁定> 一旦我得到這個是如何工作的一個更好的主意,我打算髮佈一個答案 –
RHH
2010-04-21 17:52:36