JavaとSpring-wsを使用してWebサービスを構築しています。一つのことを除いて、うまくいきます。Spring WS本体の文字をエスケープしない
ペイロードをSOAPボディに組み込むために、CDATAエスケープ文字列を含める必要があります。これは私が結果が見えるようにしたいどのようにされています
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:_0="http://example.com/ns">
<soapenv:Header/>
<soapenv:Body>
<_0:Message>
<_0:StringPayload><![CDATA[<myxml>stuff</myxml>]]></_0:StringPayload>
</_0:Message>
</soapenv:Body>
</soapenv:Envelope>
しかし、春-WSは、SOAPエンベロープを追加したときにペイロードを改ざんしているようです。
Spring WSがXML文字をエスケープしてCDATAタグを尊重しないようにする方法はありますか?
私はApache Camelと一緒にSpring WSを使用していますので、Spring-wsクラスを変更/拡張する必要がないソリューションが優先されます。
'org.springframework.ws.soap.SoapMessageFactory'のどの実装を使用していますか(公理?saaj?) 'org.springframework.ws.server.endpoint.adapter.method.MethodReturnValueHandler'とは何ですか(marshalling、jaxb、castor、' AbstractPayloadSourceMethodProcessor')? –
なぜですか? XMLパーサーとWebサービススタックの場合、これらの2つは同等です。 –
@GrzegorzGrzybekメッセージはSAAJタイプです。私はどのMethodReturnValueHandlerが使用されているかわからないが、JAXBと思う。 –