ClassCastException 由 (String) getIn().getBody
ClassCastException by (String) getIn().getBody
我的 RouteBuilder 中有这条骆驼路线:
@Override
public void configure() {
...
.log(LoggingLevel.DEBUG, "AfterHttp IN: ${in.headers} - ${in.body}").choice().when(new Predicate() {
@Override
public boolean matches(Exchange exchange) {
String body = (String) exchange.getIn().getBody();
return body.contains("output wished");
}
}).to("file://out/wished").end();
}
我不明白为什么 ClassCastException 出现在 (String) exchange.getIn().getBody()
不幸的是,从日志中,我没有得到 class getBody() 对象的信息。是。
Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException - java.lang.ClassCastException]
org.apache.camel.RuntimeCamelException: java.lang.ClassCastException
只转换成String肯定是错误的。它在文档中说明:
Object getBody()
Returns the body of the message as a POJO
万一我只是毫无逻辑地返回 true:
@Override
public boolean matches(Exchange exchange) {
return true;
}
,很好,路由按预期结束(将正文写入目录文件://out/wished)
有什么建议吗?
谢谢,
哈迪
使用
String body = exchange.getIn().getBody(String.class);
我的 RouteBuilder 中有这条骆驼路线:
@Override
public void configure() {
...
.log(LoggingLevel.DEBUG, "AfterHttp IN: ${in.headers} - ${in.body}").choice().when(new Predicate() {
@Override
public boolean matches(Exchange exchange) {
String body = (String) exchange.getIn().getBody();
return body.contains("output wished");
}
}).to("file://out/wished").end();
}
我不明白为什么 ClassCastException 出现在 (String) exchange.getIn().getBody()
不幸的是,从日志中,我没有得到 class getBody() 对象的信息。是。
Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException - java.lang.ClassCastException]
org.apache.camel.RuntimeCamelException: java.lang.ClassCastException
只转换成String肯定是错误的。它在文档中说明:
Object getBody()
Returns the body of the message as a POJO
万一我只是毫无逻辑地返回 true:
@Override
public boolean matches(Exchange exchange) {
return true;
}
,很好,路由按预期结束(将正文写入目录文件://out/wished)
有什么建议吗?
谢谢, 哈迪
使用
String body = exchange.getIn().getBody(String.class);