我正在尝试使用Apache Camel创建en RESTendpoint。我已经有了一个返回JSON内容的REST服务,我希望这个endpoint能得到它。我的问题是,我不知道构建Camel路由时发生了什么...目前,它什么也不做。这是我的代码:
restConfiguration().component("servlet")
.bindingMode(RestBindingMode.json)
.dataFormatProperty("prettyPrint", "true").host("localhost")
.port(9080);
rest("/ContextServices/rest/contextServices/document")
.consumes("application/json").produces("application/json")
.get("/testContext/557064c8f7f71f29cea0e657").outTypeList(String.class)
.to("bean:processor?method=affiche")
.to(dest.getRouteTo());
我正在端口9080
上的本地Tomcat上运行我的REST服务,我的完整URL是
/ContextServices/rest/ContextServices/document/{collection}/{id}。
我试图阅读文档,但有两种语法,但都不起作用:
from("rest:get:hello:/french/{me}").transform().simple("Bonjour ${header.me}");
或
rest("/say")
.get("/hello").to("direct:hello")
.get("/bye").consumes("application/json").to("direct:bye")
.post("/bye").to("mock:update");
第一个是Java DSL,第二个是REST DSL,有什么区别?
非常感谢!
首先,REST组件本身不是REST实现。它只是声明了描述RESTendpoint的语言。您应该使用REST的实际实现,比如Restlet(请参阅此处的完整列表)
我可能错了,但实际上,RESTendpoint只适用于您想要侦听来自其他应用程序的REST请求的情况。您需要的是向RESTendpoint发出请求并对其进行处理。问题是:您希望何时触发请求?这是某个事件,还是您希望定期检查外部REST服务?对于后一种情况,我使用以下模式:
<route>
<from uri="timer:polling-rest?period=60000"/>
<setHeader headerName="CamelHttpMethod">
<constant>GET</constant>
</setHeader>
<recipientList>
<simple>http://${properties:service.url}/api/outbound-messages/all</simple>
</recipientList>
<unmarshal ref="message-format"/>
<!-- do something with the message, transform it, log,
send to another services, etc -->
<setHeader headerName="CamelHttpMethod">
<constant>DELETE</constant>
</setHeader>
<recipientList>
<simple>http://${properties:service.url}/api/outbound-messages/by-id/${header.id}</simple>
</recipientList>
</route>
很抱歉,这个示例使用了http组件而不是REST组件。我只是从我的工作项目中复制粘贴它,该项目使用纯http。我想,通过Restlet或CXF组件之类的东西重写它。
我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题
我有一个restendpoint示例。org,返回表单的json响应 我的路线是这样的 我读过关于轮询消费者的内容,但找不到如何继续轮询endpoint的示例,直到它返回“success”响应。 是否应该使用轮询消费者?如果是这样的话,可以举一个与我的案例相关的例子。用于轮询restendpoint的任何其他资源都非常有用。
我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A
我试图在聚合器完成后获得一个回复,但是我得到一个异常,我没有指定任何聚合器子项,但是当我指定一个。to()endpoint我没有收到聚合结果。。。这可能吗? 控制器: 聚合器:
我想测试以下骆驼路线。我在网上找到的所有例子都有以文件开头的路由,在我的例子中,我有一个Springbean方法,每隔几分钟就会被调用一次,最后消息被转换并移动到jms以及审计目录。 我对这条路线的写测试毫无头绪。目前我在测试用例中所拥有的是
我从基于apache-camel-spark的rest接口获得一个json数组作为输入。开始时,我想通过apache camels路线分割json-array来处理每个元素。我该怎么做? 我的测试输入json: 对于这个问题,我在stackoverflow上找到了一些间接描述的问题: link 1, link 2, link 3。 根据这些示例,我尝试了以下骆驼路线: 当我这样做时,我总是得到以下
Apache Camel:2.12.2,activemq:5.7 我们注意到,在下面的路由中,对于前100次交换,节流工作正常。此后,它不是每秒发送100次交换,而是每秒仅发送1次交换。现在,如果我们将timePeriodMillis设置为100,它似乎可以正常工作。注意,我们同时发送500个交换。
我有一个RESTful Webservice,我想在骆驼路上用它来丰富内容。参见类似的代码: 如果我运行这个,我会得到以下错误: < code >没有类型转换器可用于从type: de.my.Class转换为所需的type: java.io.InputStream,值为de.my.Class@620ee765。 在我看来,他试图将 Exchange 的主体发送到 http-Endpoint,尽管我