我有一個簡單的路由來監聽Redis頻道。由於某種原因,它無法正常工作。 這是我的路線。我驗證了數據正在發佈到Redis頻道,我可以使用普通的Jedis訂閱者閱讀它。我在Jetty內部運行駱駝,它被部署爲戰爭。Camel Redis組件訂閱不起作用的頻道
public class RedisSubscriberRoute extends RouteBuilder{
@Override
public void configure() throws Exception {
from("spring-redis://localhost:6379?command=SUBSCRIBE&channels=mychannel")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
String res = exchange.getIn().getBody().toString();
System.out.println("************ " + res);
exchange.getOut().setBody(res);
}
})
.to("log:foo");
}
}
UPDATE(10可能2013上午09時56分EST):添加版本信息
<properties>
<spring.version>3.2.2.RELEASE</spring.version>
<camel.version>2.11.0</camel.version>
<jetty.version>7.6.8.v20121106</jetty.version>
</properties>
Redis的服務器版本2.6.11
示例git項目在這裏。 https://github.com/soumyasd/camelredisdemo
UPDATE 10日,2013(下午10時18 EST):
正如意見建議下面我改變了彈簧數據的版本1.0.0.RELEASE。看起來消息正在傳遞給訂閱者,但我仍然遇到異常。
java.lang.RuntimeException: org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.StreamCorruptedException: invalid stream header: 77686174
at org.apache.camel.component.redis.RedisConsumer.onMessage(RedisConsumer.java:73)[camel-spring-redis-2.11.0.jar:2.11.0]
at org.springframework.data.redis.listener.RedisMessageListenerContainer.executeListener(RedisMessageListenerContainer.java:242)[spring-data-redis-1.0.0.RELEASE.jar:]
at org.springframework.data.redis.listener.RedisMessageListenerContainer.processMessage(RedisMessageListenerContainer.java:231)[spring-data-redis-1.0.0.RELEASE.jar:]
at org.springframework.data.redis.listener.RedisMessageListenerContainer$DispatchMessageListener$1.run(RedisMessageListenerContainer.java:726)[spring-data-redis-1.0.0.RELEASE.jar:]
at java.lang.Thread.run(Thread.java:680)[:1.6.0_45]
是否使用的是駱駝和Redis的版本? – 2013-05-10 13:07:22
我已經通過版本信息更新了問題以及鏈接到github上的演示項目。 – 2013-05-10 13:55:48
暫時,你可以試着改變駱駝彈簧Redis的組件的驅動器的版本如下: org.springframework.data 彈簧數據redis的 1.0.0.RELEASE –
2013-05-11 02:05:53