SOAPWebサービス用のWSDLを持っています
RAD Developer(IBM Websphereで使用されるEclipseベースのコンパイラ)で「トップダウンのJava Bean」Webサービスクライアントを作成し、一連のJAX-WS.javaモジュールを自動生成しました。
操作の1つに対して自動生成された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サービスがサーバー側で読み取るものと完全に一致します。
Q:「transactionData」パラメーターのJavaシリアル化をバイパスして、SOAPメッセージで生のXMLを送信するにはどうすればよいですか?XMLを読み取って解析し、Javaの「TransactionType」構造をフィールドごとにパックする必要はありませんか?
前もって感謝します!