gpt4 book ai didi

java - 无法从 Apache Camel 路由 XML 配置到 Java 方法获取单引号

转载 作者:行者123 更新时间:2023-12-02 10:46:30 27 4
gpt4 key购买 nike

我正在使用 XML 配置定义 Apache Camel 路由,并且我想在传递带单引号的参数时调用方法:

<bean ref="cmdExecutor" method="execute('BatchQA.bat',
'./input/CamelCMDFile/QATestScripts/', 'Analytics,&apos;qa.user&apos;')"/>

执行方法如下所示:

public int execute(String bat, String dir, String arguments, Exchange exchange) {
String[] args = arguments.split(",");
result = ProcessUtils.cmdExecute(bat, dir, args);
.....

我尝试过使用’, '和 ' 以获得所需的结果,但两者都不起作用。这些字符在 arguments 对象中被简单地忽略,而字符串的其余部分则像在我的 java 函数中一样被接收。

应用@Screwtape解决方案后,我得到的参数是‘qa.user’,但这不是我的目标。

谢谢。 :)

最佳答案

我不确定 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'

虽然我不知道是否可以有这样的带有单引号和双引号的字符串。希望您不需要这个。

关于java - 无法从 Apache Camel 路由 XML 配置到 Java 方法获取单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52519766/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com