首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >来自FuseESB的奇怪输出

来自FuseESB的奇怪输出
EN

Stack Overflow用户
提问于 2013-01-10 01:03:48
回答 1查看 86关注 0票数 0

我正在对请求进行解析。我用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>

谁能告诉我如何解决这个问题,以及这种奇怪行为的原因?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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

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

https://stackoverflow.com/questions/14242483

复制
相关文章

相似问题

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