我正在使用blueprint开发一个camel restlet项目,以部署在Fuse上。它是一个非常简单的HTTP帖子,带有简单的文本正文。我将交换模式设置为inonly
。
另外,如果处理是一个长时间运行的进程,会发生什么?我希望在数据发布后立即终止,而不是等到上下文中完成处理。
我的蓝图是这样的:
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="timerToLog">
<from uri="restlet:http://localhost:7070/arena?restletMethod=POST&exchangePattern=inOnly"/>
<process ref="marcformatreader"/>
<log message="${body}" loggingLevel="INFO"/>
<process ref="marcformatwriter"/>
<log message="${body}" loggingLevel="INFO"/>
<to pattern="InOnly" uri="file:C:/Camel/output?fileName=output.mrc"/>
</route>
</camelContext>
一个解决方案是使用WireTap模式并立即返回响应,如下所示(注意!我没有执行那个代码,所以要注意可能的错别字)。
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="timerToLog">
<from uri="restlet:http://localhost:7070/arena?restletMethod=POST&exchangePattern=inOnly"/>
<wireTap uri="direct:tap" copy="true"></wireTap>
<transform>
<constant>OK</constant>
</transform>
</route>
<route id="wireTapToLog">
<from uri="direct:tap"/>
<process ref="marcformatreader"/>
<log message="${body}" loggingLevel="INFO"/>
<process ref="marcformatwriter"/>
<log message="${body}" loggingLevel="INFO"/>
<to pattern="InOnly" uri="file:C:/Camel/output?fileName=output.mrc"/>
</route>
</camelContext>
使用WireTap,Camel将继续在另一个线程中处理交换,因此POST方法将立即返回文本“ok”。
我知道有一些方法可以捆绑应用程序并将其部署在Tomcat或Jetty中。但是,如果我这样做了,最大的问题就变成了如何与Restlet集成。 我做了进一步的挖掘。我举了骆驼附带的一个tomcat例子。然后我试着让它具有RESTLET功能。差不多管用了。现在的问题是参数没有传递到路由。我希望当调用这个服务器:http://x.x.x.x.x:8080/rs/user/?name=Paul时,我会得到:
问题内容: 我一直在仔细研究Apache Camel文档,试图对它的两个 最基本 概念(端点和路由)有一个具体的了解,尽管这些术语在文档中各处都使用,但是我找不到真正定义它们的参考。是以及它们的用途。尽管它们的名称听起来很明显,而且我 想 我理解它们的含义,但是现在我已被分配到一项使我深深陷入Apache Camel Land的任务,而了解这些机制的绝对至关重要是。 我的猜测是,“端点”只是一个b
我试图在Apache Camel中实现以下路径:endpoint1接收消息。路由向endpoint2(清除主体)发起请求。转换器通过使用endpoint2的结果来转换endpoint1的主体,以输入消息。 我尝试了以下几点: 问题是,该主体被消息endpoint2覆盖。我正在考虑将消息体备份到属性中。但什么是最佳实践?
但我的努力没有奏效。 谢谢你的帮助
我试图通过基于TABLE COMPA对TABLE COMPB进行更新和删除操作,使TABLE COMPB等效于TABLE COMPA。代码在生成正确的SQL时工作得非常好。问题是,当循环在第一次迭代中终止时,我将execute语句放在下面的那个一刻。无法理解java中ResultSet的这种行为。有人帮忙吗?我错在哪里?
问题内容: 我正在使用RESTlet,并且已经创建了资源。我通过覆盖方法处理POST 。 客户端应该向我发送一些数据,然后将其存储到DB,将响应设置为201(SUCCESS_CREATED),我需要向客户端返回一些数据,但是返回类型为。 就我而言,我需要返回一些标识符,以便客户端可以访问该资源。 例如,如果我有一个带有URL的资源,并且客户端发送了POST请求,则在DB中添加一个新行,其地址应为。