我有一個SOAP Web服務Java的WS:我如何直接發送XML作爲SOAP請求
我創建了一個WSDL中的一部分,「自上而下,Java Bean的」 Web服務客戶端在RAD開發人員(使用IBM WebSphere使用一個基於Eclipse的編譯器)和自動生成的一束JAX-WS的.java模塊
下面是操作中的一個的自動生成的JAX-WS代碼:
@WebMethod(operationName = "CommitTransaction", action = "http://myuri.com/wsdl/gitsearchservice/CommitTransaction")
@RequestWrapper(localName = "CommitTransaction", targetNamespace = "http://myuri.com/wsdl/gitsearchservice", className = "com.myuri.shwsclients.CommitTransaction")
@ResponseWrapper(localName = "CommitTransactionResponse", targetNamespace = "http://myuri.com/wsdl/gitsearchservice", className = "com.myuri.shwsclients.CommitTransactionResponse")
public void commitTransaction(
@WebParam(name = "requestOptions", targetNamespace = "http://myuri.com/wsdl/gitsearchservice")
RequestOptions requestOptions,
@WebParam(name = "transactionData", targetNamespace = "http://myuri.com/wsdl/gitsearchservice")
TransactionData transactionData);
問題:
「transactionData」 來自一個大型,複雜的XML數據記錄。 WSDL格式與我將在Java端編寫的XML完全匹配,並且完全匹配Web服務將在服務器端讀取的內容。
問:如何繞過「transactionData」參數的Java序列化,在SOAP消息中發送原始XML?而不必閱讀我的XML,解析它,並逐字段地打包Java「TransactionType」結構?
預先感謝您!
有趣。它*完全*我在找什麼...如果它有效。我會嘗試並讓你知道!謝謝! – paulsm4
如果生成的「TransactionData」類未使用@XmlRootElement註釋,則可能會遇到麻煩 - 如果是這樣,則可以使用其他方法:http://docs.oracle.com/javaee/6/api/javax/xml /bind/Unmarshaller.html#unmarshalByDeclaredType – ZachOfAllTrades