我正在使用 XML 配置定义一个 Apache 骆驼路由,我想在使用单引号传递参数时调用一个方法:<bean ref="cmdExecutor" method="execute('BatchQA.bat', './input/CamelCMDFile/QATestScripts/', 'Analytics,'qa.user'')"/>execute 方法如下所示:public int execute(String bat, String dir, String arguments, Exchange exchange) { String[] args = arguments.split(","); result = ProcessUtils.cmdExecute(bat, dir, args); .....我曾尝试使用', ' and '来获得所需的结果,但都没有奏效。这些字符在arguments对象中被简单地忽略,字符串的其余部分在我的 java 函数中被接收。应用@Screwtape 解决方案后,我得到了争论'qa.user',这不是我的目标。
1 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
我不确定 Camel 对这些单引号字符串做了什么,因为如果你用撇号引用的话,它似乎只是去掉了撇号,这样我预计会导致错误的选项似乎才起作用。
但是,我已经让它按照你的要求工作了。您需要反转引用类型。XML 允许在属性中使用单引号和双引号,即使 eclipse 似乎没有对单引号属性进行着色(但该站点确实如此)。
因此当我使用
<camel:bean ref="testBean" method='test("BatchQA.bat",
"./input/CamelCMDFile/QATestScripts/", "Analytics,'qa.user'")' />
我的测试 bean 确实按照您的需要分解了字符串:
[WARN ]: beans.testBean - Analytics
[WARN ]: beans.testBean - 'qa.user'
虽然我不知道是否可以使用单引号和双引号这样的字符串。让我们希望你不需要那个。
添加回答
举报
0/150
提交
取消