2013-08-28 85 views
1

我根據文件我已經做了我的消息被傳遞很好地queue.Even存儲使用wso2esb4.7.0和ActiveMQ5.8.0 http://docs.wso2.org/display/ESB470/ESB+as+a+JMS+Producerhttp://docs.wso2.org/display/ESB470/ESB+as+a+JMS+Consumer 消耗也非常。而conuming消息在隊列Wso2esb給人樣形式的問題我得到的錯誤,而JMS在wso2esb

ERROR - JMSMessageReceiver Unknown error processing message 
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123) in prolog; expected '<' 
at [row,col {unknown-source}]: [1,1] 

爲什麼出現這種情況有沒有什麼消息格式問題我傳遞只是樣品JSON像

curl -v -H "Accept: application/json" -H "Content-Type:application/json" -H "ModifiedOn:0" -H "username:vikaash|21405735755158656" -H "password:gbin" -d '{"name":"youtility tech","mail":"[email protected]"}' http://youtility2-desktop:8282/services/JmsStore 

我們如何響應發送到客戶端的

http://stackoverflow.com/questions/18440789/how-to-give-a-response-to-client-using-wso2esb-jmsqueue 
+0

嗨,你能澄清一下你的問題嗎?你是說你已經從另一個SO問題的狀態發展,或者仍然使用相同的配置並且有問題嗎?另外,是以JSON格式存儲的消息嗎?您是否嘗試將內容類型設置爲application/json,類似於[http://docs.wso2.org/display/ESB470/ESB+as+a+JMS+Consumer](http://docs)底部的建議內容.wso2.org /顯示/ ESB470/ESB + AS + A + JMS +消費者)? – lasantha

回答

1

之所以這樣,是,如果你還沒有專門配置JMS代理在一個特定的消息格式接受郵件,它會始終將消息文本/ XML格式。

因此,當您以application/json格式發送消息時,您將在構建消息時收到此異常。因此,如果您想要從JMS隊列接受json格式的消息,則必須在代理服務配置中按如下所示定義'transport.jms.ContentType'參數。

<parameter name="transport.jms.ContentType"> 
     <rules> 
      <jmsProperty>contentType</jmsProperty> 
      <default>application/json</default> 
     </rules> 
    </parameter> 

以下是樣本代理配置。

<proxy name="StockQuoteProxy" transports="jms"> 
    <target> 
     <inSequence> 
      <property action="set" name="OUT_ONLY" value="true"/> 
     </inSequence> 
     <endpoint> 
      <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> 
     </endpoint> 
     <outSequence> 
      <send/> 
     </outSequence> 
    </target> 
    <publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/> 
    <parameter name="transport.jms.ContentType"> 
     <rules> 
      <jmsProperty>contentType</jmsProperty> 
      <default>application/json</default> 
     </rules> 
    </parameter> 
</proxy>