2013-08-25 26 views
1

我有一個由我正在使用的服務提供的WSDL文件。它包含大量的功能,我只對其中一個感興趣。將WSDL處理爲僅包含特定功能

如何「重構」WSDL文件並生成僅包含我感興趣的函數的新文件?我正在使用JDK的wsimport來處理WSDL文件,所以JAX-WS解決方案會很棒,但是如果您知道如何使用XSLT(通過將WSDL文件作爲簡單的XML文件處理),那很好太。

回答

1

是否有一些特殊的原因,爲什麼WSDL中的其他方法會打擾您?我的意思是說,沒有任何傷害,你只需調用你的方法,而忽略其他方法:)話雖如此,總是有一個手動編輯WSDL的選項(不幸的是,沒有wsimport選項只導入特定的方法)。只需從WSDL中清除所有不必要的方法及其相關元素,然後從新的WSDL重新生成WS客戶機。請小心使用您的應用程序在本地存儲和檢索WSDL,並且不管更改的WSDL如何,Web服務調用都應該成功。如果您害怕手動清除這些方法,那麼Netbeans會有XML和WSDL插件。您可以在那裏打開您的WSDL,並且您將在設計器中看到所有Web方法。只需點擊你想刪除的所有方法(它們被稱爲「操作」),它們將從文檔中消失,而不用擔心你搞砸了某些東西。示例如下:

enter image description here

其實,有一個類似的,但是當你從遠程WSDL構建Web服務客戶端,然後WS開發與更新新的方法原始WSDL扭轉局面。如果您在本地存儲WSDL,Web服務調用仍然會成功;不管添加什麼新方法。

參見:

+0

的原因是,它是一個巨大的WSDL,而我只需要一個方法。它太大了,它會影響我的wsimport-ed類和應用程序構建時間的加載時間。手動編輯風險太大,我想要一個自動化流程來根據我的需要減少WSDL。我確實保存了WSDL的本地副本,因爲否則使用遠程副本會讓所有事情變得更慢。謝謝! – gnobal

+0

@gnobal - 不客氣!不要害怕手動編輯,您可以隨時備份原始文件,以防出現問題。我已經做了很多次(不要讚美,但要向你保證沒有什麼可怕的)。我想起了另一種做法(風險較小),所以我已經更新了答案。 –