1

そこで、既存のアプリケーションと通信するためのSpringWebサービスを作成しています。リクエストを受信して​​応答するサービスを使用していますが、アプリケーションは応答がプレーンオールドXML(POX)であると想定しています。私の応答には現在、次のようにSOAPヘッダーが添付されています。

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body>
        <Person>
            <FirstName>John</FirstName>
            <LastName>Smith</LastName>
        </Person>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

私が返すためにそれが必要なのはこれです:

<Person>
    <FirstName>John</FirstName>
    <LastName>Smith</LastName>
</Person>

私が見つけたものから、Springはこれを行うことが非常に可能であり、それは何かと関係があると思いますがDomPoxMessageFactory、私が見つけたすべての例は、v1.5のような古いバージョンのSpringWSでのものです。SpringディストリビューションのPOXサンプルでさえ3年前に書かれました。助けてくれてありがとう!

編集:私はspring-wsv2.1.2も使用しています。これまでの私のコードは、ここにあるものと非常によく似ています:http ://static.springsource.org/spring-ws/sites/2.0/reference/html/tutorial.html

4

2 に答える 2

0

EndpointInterceptorAdapterを実装し、handleResponse をオーバーライドして応答を変更できます。

@Override
public boolean handleResponse(MessageContext messageContext_, Object endpoint_) 
throws IOException {

WebServiceMessage _webServiceMessage = messageContext_.getResponse();
SoapMessage _soapMessage = (SoapMessage) _webServiceMessage;
// modify the content

しかし、応答をどの程度変更できるかはわかりません。

于 2013-03-21T13:04:27.300 に答える