私はJavaでちょっと錆びていて、これは初めてmetro/JAX-WSを使用しているので、これが愚かな質問であれば謝ります。Java(メトロ)で.NET Webサービスを使用する - XMLNode/XMLDocumentの消費?
.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();
ウェブサービスの戻り値は、ほとんどすべてXmlDocumentまたはXmlNodeです。 wsimportによって生成された "UserGetWidgetsResponse.UserGetWidgetsResult"から、呼び出しによって返された実際のXMLにどのようにすればよいですか?
私はたくさんのメソッドでこれらのサービスをいくつか持っているので、どのような方法でも生成されたラッパーを変更する必要がないソリューションを見つけることを望んでいます。また、Webサービスから返される情報を管理することもできません。
Java側でXmlNodeとXmlDocumentを取得してもよろしいですか?それらはC#のようです。この発言は馬鹿に思えるかもしれませんが、多くのXMLパーサーがなくなり、すべてが違って振る舞います。 – extraneon
XmlNode/XmlDocumentは、JavaのDocumentオブジェクトやNodeオブジェクトと直接同等のものです。 WSからXmlNode/XmlDocumentsを返すことは、複合データを返すためにMSが提案する方法です。これはWSDLの「任意の」データとして正しく表示されているようですが、Java側でどのように取り上げるかはわかりません。 – Joe
LocalMessageのペイロードをどこかから取得する必要があるようです。あなたがビジネスにいるLogicalMessageContextを入手できる場合。おそらくdp.getRequestContext()は1を返します。 私は通常、バインディングを生成せずにXMLを直接処理するので、あなたをさらに助けることはできません。 – extraneon