2013-08-02 53 views
0

我想写一个简单的骆驼例子。我只想从文件读取并将其内容发送到队列。这是我的camelContext声明的样子:路由到activemq端点不起作用

<camel:camelContext> 

    <camel:route id="FileToQueue"> 
     <camel:from uri="file:src/data/?delay=1000" /> 
     <camel:to uri="activemq:queue:foo" /> 
    </camel:route> 

</camel:camelContext> 

不幸的是,这不起作用。没有任何信息写入队列。从文件系统读取按预期工作,我已经检查过。从该队列读取也工作正常(我发送一条消息使用管理Web界面从ActiveMQ和收到该消息)。

问题是没有出现异常或显示任何其他错误。我必须承认,我是骆驼和activemq的新手,所以很有可能我错过了一些东西。

我也尝试读取一个队列并将此消息发送给另一个队列。阅读一条消息是成功的,并没有发送。阅读后信息丢失了。

我使用驼峰2.11.1和activemq 5.8.0。

---更新(解决): 那是在我的pom.xml中缺失的部分(排除):

<dependency> 
    <groupId>org.apache.activemq</groupId> 
    <artifactId>activemq-camel</artifactId> 
    <version>5.8.0</version> 
    <exclusions> 
     <exclusion> 
      <groupId>org.apache.camel</groupId> 
      <artifactId>camel-jms</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

我很欣赏你的看法。 问候, 丹尼尔

+0

您确定要将文件放到正确的目录吗?当您从“file:src/data /?delay = 1000”创建路径到另一个具有不同目录的文件时。它工作吗? – balent

+0

是的,我已经检查过了。从该目录读取不是问题。 – Phillip

回答

0

如果你记录身体之间的两个uri,你有什么?如果尸体在某一点上为空。 顺便说一下,你可以编辑你的问题,向我们展示如何定义activemq端点? (经纪人网址等...它可能只是一个问题)

+1

伐木是一个伟大的提示!我不知道这可以轻松完成。日志记录显示了一个异常:java.lang.NoSuchMethodError:org.apache.camel.util.ObjectHelper.notNull 问题是,activemq-camel将它自己的camel作为依赖关系,它是2.10.3。但我使用骆驼2.11.1,这意味着,我的课程路径中有两个不同的骆驼版本。我把pom中的“旧”骆驼版本排除在外,它很有效。更多的帮助在这里: http://camel.465427.n5.nabble.com/camel-2-11-release-with-activemq-camel-5-8-td5733244.html – Phillip

+0

哈,旧的依赖冲突问题:p我也因此失去了时间和精力。现在这是我检查的第一件事;) – jlb