【问题标题】:I am getting Errors while JMS consuming in wso2esbJMS 在 wso2esb 中使用时出现错误
【发布时间】:2013-08-31 02:58:36
【问题描述】:

我正在使用 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 根据我所做的文件,我的消息很好地传递到队列。即使存储也很好。同时将消息放入队列 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":"faisal.shaik@youtility.in"}' http://youtility2-desktop:8282/services/JmsStore

我们如何向客户端发送响应

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

【问题讨论】:

  • 嗨,你能再澄清一下你的问题吗?您是说您已经从您在其他 SO 问题中的状态取得了进展,还是仍在使用相同的配置并遇到问题?另外,存储的消息是 JSON 格式吗?您是否尝试过将内容类型设置为 application/json 类似于http://docs.wso2.org/display/ESB470/ESB+as+a+JMS+Consumer 底部的建议?

标签: wso2 wso2esb wso2dss


【解决方案1】:

原因是,如果您没有专门配置 JMS 代理以接受特定消息格式的消息,它将始终将消息视为 text/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>

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多