spring-ws を使用して POX クライアント (XSD から jaxb2 から生成) を作成しましたが、SOAP クライアント (WSDL から生成) を作成する方法について混乱しています。wsimport を使用してスタブを生成していますが、これは spring-ws で使用するには 1 歩行き過ぎているようです。スタブは実際にトランスポートを処理しますが、POX クライアントと同様に、Spring がトランスポートを処理します。だから、私の質問は次のとおりです。wsimportまたはjaxb2(POXクライアントなど)を介してトランスポートオブジェクトのみを生成することは可能ですか、またはWebServiceTemplateで何を呼び出し/送信しますか?
6296 次
1 に答える
5
はい、できます。
XSD が wsdl からインポートされ、埋め込まれていないことを確認してください。
xjc (Jaxb2 から) を xsd に向けて、クラスを生成させます。
次に、スキーマを確認します。
リクエスト要素とレスポンス要素に複合型が埋め込まれている場合は、次を使用します。
RequestElement requestElement = new RequestElement();
ResponseElement responseElement = (ResponseElement) webServiceTemplate.marshalSendAndReceive(requestElement);
それ以外の場合 (複合型を参照) は、これを使用します。
RequestType requestType = new RequestType();
JAXBElement<RequestType> request = new ObjectFactory().createRequestType(requestType);
ResponseType responseType = ((JAXBElement<ResponseType>) webServiceTemplate.marshalSendAndReceive(request)).getValue();
もちろん、RequestElement、ResponseElement、RequestType、および ResponseType は単なる例です。Xjc がスキーマから生成した任意のクラスでそれらを置き換えます。
于 2010-11-26T16:12:55.697 に答える