java - 无法从 Apache 骆驼路由 XML 配置到 Java 方法中获取单引号
问题描述
我正在使用 XML 配置定义一个 Apache 骆驼路由,并且我想在使用单引号传递参数时调用一个方法:
<bean ref="cmdExecutor" method="execute('BatchQA.bat',
'./input/CamelCMDFile/QATestScripts/', 'Analytics,'qa.user'')"/>
执行方法如下所示:
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'
不是我的目标。
谢谢。:)
解决方案
我不确定 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'
虽然我不知道是否有可能有这样一个带有单引号和双引号的字符串。希望你不需要那个。
推荐阅读
- scala - 是否可以在 Scala 中构建类型驱动的函数查找表?
- mpandroidchart - 雷达图问题
- java - hash Code 方法是如何计算值的?
- excel - 在 VBA 中编码时出现 Å、Ä 和 Ö(对于其他用户)的问题
- json - Spring Boot http消息转换器有时会序列化null
- elixir - 在论坛外保留查询参数
- c++ - 使用 Eigen 和 OpenMP 的线程安全并行稀疏-稀疏矩阵乘法
- c - 复数 (complex.h) 和明显的精度滞后
- mongodb - 一个业务问题需要 mongodb 帮助
- javascript - TO DO APP - 如何将 2 个图标对齐到 li 的右侧?