2017-10-05 85 views
1

私は様々なReST/JSONとSOAPエンドポイントを(成功して)統合するプロジェクトでSpring Integrationを使用しています。 これで、Plain-Old-Xml-over-HTTPを受け入れるように設定されたBusinessWorksインスタンスを呼び出す必要があります。 "Spring Integration in Action book"から、私はint-ws:outbound-gatewayを使うべきであるというヒントを得ました。 この構成は、正しい要求を生成しますが、SOAPで:Spring IntegrationからPOX Webサービスを呼び出す

<int-ws:outbound-gateway 
    uri="..." 
    request-channel="request" reply-channel="reply" 
    marshaller="marshaller" unmarshaller="unmarshaller"/> 

私はPOX(無SOAPエンベロープ)として、ペイロードにオブジェクトを送信するために、これを設定する方法を見つけ出すことはできません。 は、私はこれを試してみました:

<int-ws:outbound-gateway 
    uri="..." 
    request-channel="request" reply-channel="reply" 
    marshaller="marshaller" unmarshaller="unmarshaller" 
    message-factory="poxMessageFactory"/> 
<bean id="poxMessageFactory" 
    class="org.springframework.ws.pox.dom.DomPoxMessageFactory"/> 

要求はXMLに正しく切り替えているようですが、リクエストのボディは、(春の統合ペイロードに存在する物体の痕跡)は空です。 誰かが私が間違ってやっていることや私がやろうとしていることを達成する方法を教えてもらえますか? if (message instanceof SoapMessage) {

public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { 
     Object payload = this.requestMessage.getPayload(); 
     if (message instanceof SoapMessage) { 
      this.doWithMessageInternal(message, payload); 
      AbstractWebServiceOutboundGateway.this.headerMapper 
        .fromHeadersToRequest(this.requestMessage.getHeaders(), (SoapMessage) message); 
      if (this.requestCallback != null) { 
       this.requestCallback.doWithMessage(message); 
      } 
     } 

    } 

ご注意:

答えて

0

は、私は、これはAbstractWebServiceOutboundGatewayで漏れだと思います。

実際、メッセージが異なるタイプになる可能性があることは間違いありません。

問題については、JIRA bugを開いてください。

一方、回避策として、私はあなたが相互作用のためのmarshalSendAndReceive()方法を使用して<service-activator>からそれを呼び出すことができなく直接<int-ws:outbound-gateway>WebServiceTemplateを使用するためにあなたをお勧めします。

+0

ありがとうございました!私はこの正式な答えがトピックを閉じると思います:-)私はJIRAバグをオープンしました。この回避策を使用することですばやく試行しましたが、私たちが呼び出すサービスは同じ会社で管理されているため、SOAPを受け入れるようにサービスを再構成することに同意しました。 –

+0

JIRA https://jira.spring.io/browse/INT-4355は最近修正されました。あなたが必要な場合は、次のメンテナンスバージョンをできるだけ早くリリースすることがあります –

+0

ああ!申し訳ありませんが、私はこの最後のコメントを逃しました。どうもありがとうございますが、今度は次のバージョンで納品を待つことができます。 –

関連する問題