我正在对请求进行解析。我用Java开发了用于解析传入请求的路由。
我使用的是Camel2.9和FuseESB 7.0.1.0.84。
根据Camel手册,我使用simple(“{body}”).getText()
来获取传入的请求
因此,我使用如下代码检查传入的请求:
if (xmlStringToParse == null || xmlStringToParse.equals("") || xmlStringToParse.equals("${body}")) {
parsedXMLPath = "<error>Incoming request is as folows:"
+ "\nValue of xmlStringToParse: " + xmlStringToParse
+ "\n xmlStringToParse is empty: " + (xmlStringToParse.equals(""))
+ "\n xmlStringToParse equals ${body}: " + (xmlStringToParse.equals("${body}"))
+ "\nAgain checking incoming request:\n" + xmlStringToParse
+ "</error>";
}
Where xmlStringToParse = simple(“${body}”).getText()
奇怪的结果是:
xmlStringToParse
的值仅在一行中从soap请求更改为"“。同样,“xmlStringToParse equals ${body}
”被打印为“xmlStringToParse equals
”,而不打印${body}
。日志中未打印${body}
。
您可以找到以下日志输出:
<error>
Value of xmlStringToParse: <somesoapRequest>
xmlStringToParse is empty: false
xmlStringToParse equals : true
Again checking incoming request:
</error>
谁能告诉我如何解决这个问题,以及这种奇怪行为的原因?
发布于 2013-01-10 16:55:15
根据Camel手册,我使用简单的(“{
}”).getText()来获取传入的请求
你在哪里看到的?你有链接吗?
您应该以另一种方式获取消息体,而不是像这样
String body = exchange.getIn().getBody(String.class);
或者,如果使用bean参数绑定,则可以绑定消息体并仅将参数声明为字符串类型
public void foo(String body) {
...
}
有关更多详细信息,请访问Camel docs:http://camel.apache.org/bean-binding.html
https://stackoverflow.com/questions/14242483
复制相似问题