Java(メトロ)での.NET Webサービスの使用-XMLNode / XMLDocumentの使用?
-
05-07-2019 - |
質問
Javaが少し錆びており、metro / JAX-WSを使用するのは初めてなので、これが愚かな質問である場合は謝罪します。
.NET Webサービスを使用するクライアントを作成する必要があります。基本を理解しました。 WSDLからラッパーを生成しました。オブジェクトとポートを作成し、呼び出しを行って応答を取得できます。
Widgets d = new Widgets();
WidgetsSoap dp = d.getWidgetsSoap();
((BindingProvider)dp).getRequestContext(). put(javax.xml.ws.BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://actualsite/foo.asmx");
UserGetWidgetsResponse.UserGetWidgetsResult j = dp.userGetWidgets();
Webサービスの戻り値は、ほぼすべてXmlDocumentまたはXmlNodeです。 wsimportで生成された" UserGetWidgetsResponse.UserGetWidgetsResult"から取得するにはどうすればよいですか?呼び出しによって返される実際のXML
これらのサービスには多数のメソッドがあり、生成されたラッパーを変更する必要のないソリューションを見つけたいと思っています。また、Webサービスから返される情報を制御することもできません。
解決
週末にこれに対する解決策を見つけましたが、それが正しい解決策であるかどうかはわかりません:
UserGetDevicesResponse.UserGetDevicesResult j = dp.userGetDevices();
List<Object> n = j.getContent();
if (n.size() > 0)
{
Node z = (Node)n.get(0);
System.out.println(nodeToString(z));
}
これは、私が探していたXML文書応答を提供します。その後、ツリーで必要な操作を実行して、探しているデータを抽出できます。
所属していません StackOverflow