質問

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文書応答を提供します。その後、ツリーで必要な操作を実行して、探しているデータを抽出できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top