所以我在NetBeans 8.1中有一個Web服務,爲此我使用嵌入式XSD(以及外部參考)編寫了wsdl。 現在我需要能夠在應用程序的其他實例上調用SOAP服務: 即實例X調用實例Y上的方法作爲應用程序的次要目標。 我不喜歡使用NetBeans自動SOAP客戶端嚮導,因爲我會指向我正在構建的服務 - 它可能會在構建過程中成爲雞和蛋類型的東西。其次,我已經擁有了Web服務使用的所有必需的JAXB類型,因此構建客戶端應該很容易嗎?來自wsdl的Java.xml.validation.Schema
當我想使用JAXB將我的請求對象編組爲javax.xml.soap.SOAPBodyElement
(我當前的策略是爲客戶端部分使用SAAJ)時,我的麻煩開始了,但是如何將模式添加到編組?該模式嵌入在wsdl中,我無法弄清楚如何引用它。 我想我可以將模式部分拆分爲單獨的XSD文件,但我缺少@WebService
的註釋選項,我可以提供一個XSD文件,就像我可以提供一個wsdl文件(當前爲'wsdlLocation'因爲它是嵌入式的,所以指向兩個wsdl & xsd)。
我想我可能不得不在客戶端(它啓用服務器端)做XSD驗證,因爲從wsdl獲取一個Schema對象似乎很棘手 - 可能以某種方式?
我從來沒有解決過這個問題,而是選擇爲特定用例使用專用接口,該接口將子任務卸載到應用程序的其他實例(這是雲之前/碼頭世界)。相反,我只需將對象作爲application/x-java-serialized-object發送,讓它們處理並返回給我。整個任務也可以通過soap ws,但效率不高。 –