想象你想在apache-camel的消息体中使用字符序列\n
...
我想最简单的方法是这样的:
\\n
不幸的是,<simple>
将替换为换行符。逃避(camel-groovy
)似乎无法在 :loop
cls
taskkill /F /IM Firefox.exe
cls
taskkill /F /IM crashreporter.exe
cls
TIMEOUT /T 5
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" -no-remote -private-window http://google.com
TIMEOUT /T 600
GOTO loop
标记中发挥作用...
知道如何解决这个问题吗?
PS:我不能使用Java-DSL,也希望避免使用characters()
等其他依赖项。
答案 0 :(得分:2)
如果你想使用一个常数体,你可以使用constant
语言,不需要转义\ n:
<setBody>
<constant>one line\nsecond line</constant>
</setBody>
我可能错了,但我认为今天(v2.16.2)不能用简单的语言引用反斜杠,以便做你想做的事。如果我查看org.apache.camel.language.simple.SimpleTokenizer
的来源,\\
不会被视为特殊字符。可能有一些解决方法,但应该很容易创建一个问题//使用此功能发送PR。
答案 1 :(得分:1)
我查看了Simple语言的骆驼来源。有受保护的allowEscape = true
,但没有设置它的接口。当然,您可以继承它,并创建自己的Simple
语言,覆盖此字段。
从SimpleTokenizer您可以看到,使用当前实现无法构建\n
字符串。
答案 2 :(得分:0)
我找到了一个解决方案 - 速度模板符合我的需求。