任何人都可以帮我配置两个与Apache FUSE ESB具有相同基URI的JAX-RS服务吗?我正在使用带有karaf容器,Apache Camel和CXF(JAX-RS)的JBoss FUSE 6.0版本。配置使用Blueprint完成。当我只配置一个JAX-RS服务时,一切正常。
我正在尝试使用基本URI http://localhost:9001/rs
提供两个JAX-RS Bean。第一个bean为http://localhost:9001/rs/rest1
,第二个bean为http://locahost:9001/rs/rest2
。
我已经使用jetty端点定义了两个camel上下文。我想我需要两个只使用一个配置的实例,但无法弄清楚如何做到这一点。
以下是我的Camel Contexts:
<camel:camelContext id="context1">
<camel:endpoint id="ep1" uri="jetty:http://localhost:9001/rs/?matchOnUriPrefix=true"/>
<camel:route autoStartup="true">
<camel:from uri="ep1"/>
<camel:to uri="cxfbean:restBean1"/>
<camel:log message="Message received after REST Processor. "/>
<camel:convertBodyTo type="java.lang.String"/>
<camel:to uri="log:loggingCategory?level=INFO"/>
</camel:route>
</camel:camelContext>
<camel:camelContext id="context2">
<camel:endpoint id="ep2" uri="jetty:http://localhost:9001/rs/?matchOnUriPrefix=true"/>
<camel:route autoStartup="true">
<camel:from uri="ep2"/>
<camel:to uri="cxfbean:restBean2"/>
<camel:log message="Message received after REST Processor. "/>
<camel:convertBodyTo type="java.lang.String"/>
<camel:to uri="log:loggingCategory?level=INFO"/>
</camel:route>
</camel:camelContext>
两个Bean都作为服务参考注入,当我评论其中一条路线时,一切都有效。
有关如何在camel中配置此内容的任何建议吗?
干杯, 奥利弗
答案 0 :(得分:1)
2个码头端点应该是唯一的,例如你们两个都有/ rs / 应该可能是
<camel:endpoint id="ep1" uri="jetty:http://localhost:9001/rs/rest1/?matchOnUriPrefix=true"/>
<camel:endpoint id="ep2" uri="jetty:http://localhost:9001/rs/rest2/?matchOnUriPrefix=true"/>
答案 1 :(得分:0)
我用两个端点解决了这个问题
<camel:endpoint id="ep1" uri="jetty:http://localhost:9001/rs/rest1/?matchOnUriPrefix=true"/>
<camel:endpoint id="ep2" uri="jetty:http://localhost:9001/rs/rest2/?matchOnUriPrefix=true"/>
REST Bean现在位于@Path("/")
。
现在所有REST Bean都有正确的路径。
我需要测试的下一件事是如何将我的两个端点与我的Web应用程序包一起放在同一个URL上。
谢谢!