为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 Apache 骆驼路由 XML 配置到 Java 方法获取单引号

无法从 Apache 骆驼路由 XML 配置到 Java 方法获取单引号

人到中年有点甜 2021-10-13 12:52:40
我正在使用 XML 配置定义一个 Apache 骆驼路由,我想在使用单引号传递参数时调用一个方法:<bean ref="cmdExecutor" method="execute('BatchQA.bat',        './input/CamelCMDFile/QATestScripts/', 'Analytics,&apos;qa.user&apos;')"/>execute 方法如下所示:public int execute(String bat, String dir, String arguments, Exchange exchange) {    String[] args = arguments.split(",");    result = ProcessUtils.cmdExecute(bat, dir, args);    .....我曾尝试使用&apos;, &#39; and &#x27;来获得所需的结果,但都没有奏效。这些字符在arguments对象中被简单地忽略,字符串的其余部分在我的 java 函数中被接收。应用@Screwtape 解决方案后,我得到了争论&apos;qa.user&apos;,这不是我的目标。
查看完整描述

1 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

我不确定 Camel 对这些单引号字符串做了什么,因为如果你用撇号引用的话,它似乎只是去掉了撇号,这样我预计会导致错误的选项似乎才起作用。


但是,我已经让它按照你的要求工作了。您需要反转引用类型。XML 允许在属性中使用单引号和双引号,即使 eclipse 似乎没有对单引号属性进行着色(但该站点确实如此)。


因此当我使用


<camel:bean ref="testBean" method='test("BatchQA.bat",

    "./input/CamelCMDFile/QATestScripts/", "Analytics,&apos;qa.user&apos;")' />

我的测试 bean 确实按照您的需要分解了字符串:


[WARN ]: beans.testBean - Analytics

[WARN ]: beans.testBean - 'qa.user'

虽然我不知道是否可以使用单引号和双引号这样的字符串。让我们希望你不需要那个。


查看完整回答
反对 回复 2021-10-13
  • 1 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信