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

我正在使用 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;,这不是我的目标。


人到中年有点甜
浏览 160回答 1
1回答

慕桂英4014372

我不确定 Camel 对这些单引号字符串做了什么,因为如果你用撇号引用的话,它似乎只是去掉了撇号,这样我预计会导致错误的选项似乎才起作用。但是,我已经让它按照你的要求工作了。您需要反转引用类型。XML 允许在属性中使用单引号和双引号,即使 eclipse 似乎没有对单引号属性进行着色(但该站点确实如此)。因此当我使用<camel:bean ref="testBean" method='test("BatchQA.bat",&nbsp; &nbsp; "./input/CamelCMDFile/QATestScripts/", "Analytics,&apos;qa.user&apos;")' />我的测试 bean 确实按照您的需要分解了字符串:[WARN ]: beans.testBean - Analytics[WARN ]: beans.testBean - 'qa.user'虽然我不知道是否可以使用单引号和双引号这样的字符串。让我们希望你不需要那个。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java