2013-04-09 14 views
0

我有一個在NetBeans中使用jax-ws創建的Web服務。當我從wsdl文件創建肥皂客戶端時,Netbeans生成用於序列化的映射類。如何在jax-ws客戶端中刪除自動生成的類

我的問題是我不想要他們。我自己寫了它們,並在應用程序的其他部分使用。我嘗試了所有使用我的類而不是自動生成的類來發送SOAP消息,但沒有成功。 繁瑣的解決方案是將數據從一個類複製到另一個類然後發送消息,但是我的類有大約20個子類,所以我非常想跳過這個。

+0

如果您使用遠程WSDL而不是本地文件,那麼該怎麼辦? – 2013-04-09 19:14:59

回答

0

使用JAXB episode選項,它基本上允許您指示JAXB在包中重用類。您在文件中指定了所需的軟件包。 「episode」只是jaxb綁定文件的一個奇特名稱,與常規的jaxb配置文件沒有多大區別。你的插曲文件看起來像這樣(布萊斯Doughan的博客綁定文件摘錄courtesty)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb"> 
    <bindings scd="x-schema::tns" 
    xmlns:tns="http://www.example.org/Product"> 
    <schemaBindings map="false"/> 
    <bindings scd="tns:product"> 
     <class ref="com.you.yourclass"/> 
    </bindings> 
    </bindings> 
</bindings> 

將文件保存爲一個文件.episode,並像這樣配置NetBeans項目。我這裏假設你已經運行從WSDL嚮導Netbeans的

  1. 創建web服務右鍵單擊web服務項目中節點。導航到的wsimport選項標籤

  2. JAXB(XJC)選項框,添加以下

Customize WSImport

(其中myepisodefile.episode是指先前創建的事件文件。確保該文件在您的項目中可用)