我目前在自定义camel组件中使用netty来监听套接字(使用带有nettychannel处理程序的消费者),将消息从套接字传递到多个camel端点,并最终将最终结果写入平面文件。这很好用,但显然仅限于“仅在”功能。我想做的是,不是将最终结果写入平面文件,而是通过套接字将最终结果发送回请求者。这样的东西是行不通的..伪代码:我怀疑发生的是我对的使用导致NettyProducer尝试与位于localhost:1111的服务器建立新连接,该连接不存在,因为它是套接字客户端。而不是神奇地使用我想要的消费者打开的channel。这只是设置正确的uri选项的问题还是不可能?这是问题的高级描述。以
在像ApacheCamel这样的ESB上,什么机制实际上是沿着从一个端点到另一个端点的路由“行进”(拉/推)消息?CamelRouteBuilder是否只是组成一个Endpoints和Routes的图表,并知道哪个目的地/下一个Endpoint在消息访问某个Endpoint之后将消息传递给,或者让Endpoints自己知道哪个是它已处理的消息的下一个目的地。不管怎样,我很困惑:如果RouteBuilder知道消息在系统中的“流动”,那么这个RouteBuilder就需要知道何时的业务逻辑端点A应该在EndpointBvsEndpointC旁边传递消息,但在所有Camel示例中,我看到这
有什么区别:...和:...根据thisarticle,结合使用它们是一个“强大的组合”。怎么会这样?他们各自承担什么角色,他们如何相互补充? 最佳答案 errorHandler用于处理在消息的路由和处理过程中抛出的任何未捕获的Exception。相反,onException用于在抛出特定的Exception类型时对其进行处理。查看thisarticle查看如何使用onException。 关于java-ApacheCamel:errorHandlervsonException?,我们在
我已经编写了使用apachecamel调用restapi的示例代码。它在独立模式下正常工作,但我用来创建OSGIbundle并将其部署到成功创建bundle的karaf容器中的代码相同,但我收到诸如“Nocomponentfoundwithscheme”之类的错误http"当我尝试调用它时。你能帮我解决这个问题吗?代码如下:CamelContextcontext=newDefaultCamelContext();context.addRoutes(newRouteBuilder(){publicvoidconfigure(){from("direct:start").setHeader
我目前正在使用HTTP方法来调用一些URL,这会产生JIRA问题。现在我想使用ApacheCamel,我该如何使用它?我需要通过Camel调用以下链接:http://localhost:8080/rest/api/2/project/"+key+/components由于我是Camel的新手,请也提出一些解决方案和示例。谢谢 最佳答案 另请参阅有关在Camel中使用动态端点的常见问题解答http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html本质上,EIP模式是收件人列表
CamelinAction一书中生产者和消费者的定义让我有点困惑。我已经阅读了类似问题的其他两个答案,但我仍然觉得不是那样。AproduceristheCamelabstractionthatreferstoanentitycapableofcreatingandsendingamessagetoanendpoint.Figure1.10illustrateswheretheproducerfitsinwithotherCamelconcepts.Whenamessageneedstobesenttoanendpoint,theproducerwillcreateanexchangea
我现在开始使用Camel。我已经看到了用于http客户端的http4组件和用于http服务器的jetty组件。我见过几个使用其中一个的例子。我想知道是否可以将它们组合在一起。例子from("jetty:http://0.0.0.0:8080/myapp/myservice").to("http4://www.google.com");这将使camel成为一个简单的基于http的路由器/代理。网络浏览器会点击CamelURL而不是谷歌。(谷歌只是一个例子,我有一个真正的基于POST的服务,我想使用)这条路线可行吗?我应该研究Camel还是需要一个不同的软件框架?将来我还需要在两者之间添加
我有一系列“流水线”组件,它们都通过ActiveMQ消息队列进行通信。每个组件都使用Camel将这些队列中的每一个视为一个端点。每个组件都使用相同的基本模式:每个组件从输入队列中获取消息,处理消息,然后将1+条消息放入出站/输出队列。“输出”队列然后成为链中下一个组件的“输入”队列。非常基本。我现在正努力挽起袖子,使用Camel的测试API提供的MockEndpoints为每个组件提供单元测试。我一直在研究javadoc和Camel网站上的几个例子,但我很难把所有的点联系起来。在我看来,对于每个组件,我的单元测试的一部分将要完成以下三件事:测试是否有消息在特定“输入”队列中等待拉下这些
我在我的Camel应用程序中使用Redis组件。一个问题是它会自动将字符串添加到键中。例如,假设我在我的Camel应用程序中运行以下命令:from("direct://path/to/store/in/redis").setHeader(RedisConstants.COMMAND,constant("SET")).setHeader(RedisConstants.KEY,constant("key")).setHeader(RedisConstants.VALUE,constant("value")).to(spring-redis://localhost:6379);然后,如果我打
我在我的Camel应用程序中使用Redis组件。一个问题是它会自动将字符串添加到键中。例如,假设我在我的Camel应用程序中运行以下命令:from("direct://path/to/store/in/redis").setHeader(RedisConstants.COMMAND,constant("SET")).setHeader(RedisConstants.KEY,constant("key")).setHeader(RedisConstants.VALUE,constant("value")).to(spring-redis://localhost:6379);然后,如果我打