找不到jsonpath的语言

时间:2015-03-24 18:15:20

标签: activemq jsonpath

我试图在activemq中使用jsonpath聚合消息。 但是当我尝试启动activemq时,我得到了这样的异常:

ERROR: org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRo
uteException: Failed to create route route2 at: >>> Choice[[When[jsonpath{$.pers
on[?(@.position = 'manager')]} -> [To[activemq:queue:test.manager]]]] Otherwise[
[To[activemq:queue:test.nonManager]]]] <<< in route: Route(route2)[[From[activem
q:queue:test.other]] -> [Choice[[... because of No language could be found for:
jsonpath

My Route看起来像这样:

from("activemq:queue:test.other")
                .choice()
                .when().jsonpath("$.person[?(@.position = 'manager')]")
                .to("activemq:queue:test.manager")
                .otherwise()
                .to("activemq:queue:test.nonManager")
                .end();

1 个答案:

答案 0 :(得分:4)

与ActiveMQ捆绑在一起的camel版本仅限于在队列之间进行基本路由。

您可以使用所需功能扩展lib / camel中的依赖项。从顶级jar开始,从Maven获取所有依赖项。即camel - .jar在你的情况下,如果你使用activemq 5.11.0,它将是camel-jsonpath-2.14.1.jar

我通常在apache-activemq-5.11.0 / lib / camel文件夹中使用这样的脚本(使用Apache Ivy下载依赖图)。如果您需要使用Windows或类似软件,请调整脚本。

curl -L -O http://search.maven.org/remotecontent\?filepath\=org/apache/ivy/ivy/2.3.0/ivy-2.3.0.jar
java -jar ivy-2.3.0.jar -dependency org.apache.camel camel-jsonpath 2.14.1 -retrieve "lib/[artifact]-[revision](-[classifier]).[ext]"
rm slf4j-api-1.6.6.jar
rm ivy-2.3.0.jar     

注意清理到底。删除可能导致与ActiveMQ的lib文件夹中已有的其他依赖项冲突的所有依赖项。