您好我想调用网址为
的休息服务http://ex.abc.com/orders/resources/{var1}/{var2}/details?orderNumber=XXXXX
其中var1和var2是动态值。根据输入,他们将改变。 我还想设置2个标题,例如key1:value1,key2:value2。
如何使用给定的标头对给定的URL进行休息调用,然后使用Apache Camel查看响应? (响应永远是JSON)。
答案 0 :(得分:0)
您可以在路径块中使用动态uri。 见http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html 请注意,这可以在from()和to()中完成。
实施例:
[来自(以前的申请终点)]
- > [收到(用交换中的动态值进行休息)]
- > [To(处理返回的json)]
答案 1 :(得分:0)
如果您正在进行休息通话,则可以使用CXFRS组件。在页面的最底部,您将看到一个处理器示例,该处理器将消息设置为休息呼叫。关于您的问题,您可以使用
inMessage.setHeader(Exchange.HTTP_PATH, "/resources/{var1}/{var2}/details?orderNumber=XXXXX");
设置您可能需要的任何路径参数。
答案 2 :(得分:0)
请尝试使用camel servlet。
<来自uri =“servlet:/// orders / resources / {$ var1} / {$ var2} / details?orderNumber = XXXXX”/>
在web.xml中< url-pattern> / *< / url-pattern的>
答案 3 :(得分:0)
以下是您可以使用Apache Camel找到Rest调用的示例。
package camelinaction;
import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
import org.apache.camel.spring.boot.FatJarRouter;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class OrderRoute extends FatJarRouter {
@Bean(name = "jsonProvider")
public JacksonJsonProvider jsonProvider() {
return new JacksonJsonProvider();
}
@Override
public void configure() throws Exception {
// use CXF-RS to setup the REST web service using the resource class
// and use the simple binding style which is recommended to use
from("cxfrs:http://localhost:8080?resourceClasses=camelinaction.RestOrderService&bindingStyle=SimpleConsumer&providers=#jsonProvider")
// call the route based on the operation invoked on the REST web service
.toD("direct:${header.operationName}");
// routes that implement the REST services
from("direct:createOrder")
.bean("orderService", "createOrder");
from("direct:getOrder")
.bean("orderService", "getOrder(${header.id})");
from("direct:updateOrder")
.bean("orderService", "updateOrder");
from("direct:cancelOrder")
.bean("orderService", "cancelOrder(${header.id})");
}
}
源代码链接:
https://github.com/camelinaction/camelinaction2/tree/master/chapter10/camel-cxf-rest-spring-boot
我非常鼓励推荐camelinaction2,因为它涵盖了许多高级主题,它由@Claus Ibsen撰写。