首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Camel:不能将DefaultMessage转换为JmsMessage

Apache Camel:不能将DefaultMessage转换为JmsMessage
EN

Stack Overflow用户
提问于 2011-10-11 22:03:44
回答 1查看 1.4K关注 0票数 2

每当新的JMS消息到达给定队列时,我都会尝试使用Camel路由将POST消息发送到PHP脚本。我已经让它正常工作了,但是现在POST消息缺少JMS消息体,并且我的ActiveMQ日志中出现了以下错误:

代码语言:javascript
复制
2011-10-10 17:46:39,961 | ERROR | Caused by: [org.apache.camel.RuntimeCamelException -
java.lang.ClassCastException: org.apache.camel.impl.DefaultMessage cannot be cast to 
org.apache.camel.component.jms.JmsMessage] |
org.apache.camel.component.jms.EndpointMessageListener | 
DefaultMessageListenerContainer-1
org.apache.camel.RuntimeCamelException: java.lang.ClassCastException:
org.apache.camel.impl.DefaultMessage cannot be cast to
org.apache.camel.component.jms.JmsMessage

我已经在pom.xml文件中包含了camel-jms依赖项。我使用Camel2.4.0,并将camel-jms文件放在ActiveMQ的lib文件夹中。

这是我的路由当前的样子:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<route autoStartup="true" inheritErrorHandler="true" id="route2" xmlns:ns2="http://camel.apache.org/schema/web" xmlns="http://camel.apache.org/schema/spring">
    <from uri="activemq:topic:topic_name"/>
    <setBody inheritErrorHandler="true" id="setBody2">
        <simple>name=${body}</simple>
    </setBody>
    <setHeader headerName="Content-Type" inheritErrorHandler="true" id="setHeader3">
        <constant>application/x-www-form-urlencoded;</constant>
    </setHeader>
    <setHeader headerName="CamelHttpMethod" inheritErrorHandler="true" id="setHeader4">
        <constant>POST</constant>
    </setHeader>
    <to uri="http://path/to/process.php" inheritErrorHandler="true" id="to2"/>
</route>

我的路由配置中是否遗漏了什么?或者是ActiveMQ服务器本身出了问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-15 20:11:36

在Camel中有一个关于这个的bug。你可以通过升级Camel或使用更新的AMQ来修复这个问题,AMQ有一个更新的Camel版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7727312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档