2014-09-15 2 views
0
<flow name="entry-flow" doc:name="entry-flow"> 
    <http:inbound-endpoint exchange-pattern="request-response" 
     host="localhost" port="8085" path="createOrder" contentType="application/json" 
     doc:name="HTTP" /> 
    <byte-array-to-string-transformer 
     doc:name="Byte Array to String" /> 

    <request-reply doc:name="nullRequest-Reply1"> 
     <jms:outbound-endpoint connector-ref="Active_MQ10" 
      queue="queueOne" doc:name="JMS" /> 
     <jms:inbound-endpoint connector-ref="Active_MQ10" 
      queue="queueTwo" doc:name="JMS" /> 
    </request-reply> 
</flow> 

<flow name="jms-flow" doc:name="jms-flow"> 

    <jms:inbound-endpoint connector-ref="Active_MQ10" exchange-pattern="request-response" 
     queue="queueOne" doc:name="JMS" /> 

    <json:object-to-json-transformer 
     doc:name="Object to JSON" /> 

    <https:outbound-endpoint exchange-pattern="request-response" 
     method="POST" address="" 
     contentType="application/json" doc:name="HTTP"> 
     <set-property propertyName="Authorization" 
      value="" /> 
    </https:outbound-endpoint> 
    <byte-array-to-string-transformer doc:name="Byte Array to String" /> 
    </flow> 

위의 흐름을 사용하여 첫 번째 jms로 메시지를 보낸 다음 jms에서 https 요청으로 메시지를 소비합니다. 그러나 https 응답은오고 있지만 jms로 돌아 가지 않습니다.메시지가 jms mule esb에서 응답하지 않습니다

INFO 2014년 9월 15일 17 : 13 : 43895 [ActiveMQ를 세션 작업-1] org.mule.transport.jms.JmsReplyToHandler : 큐 : 응답 메시지가 보내 // queueTwo을 CorrelationID를 가진 : NULL

하나 더 조언 -> 내 https 요청이 응답하지 않거나 다운 된 다음 jms에서 메시지를 사용하지 않으면 플로우에 한 가지 더 추가합니다.

답변

0

우선 JMS 인바운드 이후 <json:object-to-json-transformer doc:name="Object to JSON" />을 왜 사용하고 있습니까? 에 기재된, 지금처럼

<flow name="entry-flow" doc:name="entry-flow"> 
    <http:inbound-endpoint exchange-pattern="request-response" 
     host="localhost" port="8085" path="createOrder" contentType="application/json" 
     doc:name="HTTP" /> 
    <set-payload value="Put Your JSON message here" doc:name="Set Payload"/> 

    <request-reply doc:name="nullRequest-Reply1"> 
     <jms:outbound-endpoint connector-ref="Active_MQ10" 
      queue="queueOne" doc:name="JMS" /> 
     <jms:inbound-endpoint connector-ref="Active_MQ10" 
      queue="queueTwo" doc:name="JMS" /> 
    </request-reply> 
</flow> 

<flow name="jms-flow" doc:name="jms-flow"> 

    <jms:inbound-endpoint connector-ref="Active_MQ10" exchange-pattern="request-response" 
     queue="queueOne" doc:name="JMS" /> 


    <https:outbound-endpoint exchange-pattern="request-response" 
     method="POST" address="" 
     contentType="application/json" doc:name="HTTP"> 
     <set-property propertyName="Authorization" value="" /> 
    </https:outbound-endpoint> 

    </flow> 

당신이 <set-payload/>를 사용하여 JSON 페이로드를 설정 -이 : 두 번째 것은 내가 .. JMS 아웃 바운드에 JSON 데이터를 보내드립니다 흐름에서 아무것도 발견 않았다 그래서 나는 다음의 흐름을 수정 한 것입니다 첫 번째 흐름 .. 그런 다음 두 번째 흐름에서 메시지를 소비 할 수 있습니다 .. 또한 JMS 인바운드 이후 <json:object-to-json-transformer doc:name="Object to JSON" />을 제거하십시오 ...

+0

동일한 일은 발생하지 않습니다. 하지만 내가 사용자 정의 자바 변압기를 사용하여 게시물을 사용하여 https 요청을 누른 다음 자바를 사용하여 작업. –

+0

제 2 질문도하십시오 https 요청이 응답하지 않거나 다운되면 jms의 메시지를 사용하지 마십시오. –

관련 문제