我正在尝试使用camel使用restful Web服务。
为此,我正在配置动态endpointurl,因为RESTful url是在运行时创建的。每次我都会使用CamelContext类的以下方法检查特定endpointurl是否在我的CamelContext中注册为路由。
endpoint有Endpoint(String uri);
在这种情况下,如果未注册终结点,则使用自定义路由生成器将路由添加到骆驼上下文中。
我使用骆驼HTTP组件。这对我来说很好。
然而,我认为从性能角度来看,这并不好,因为每次我都必须检查一条路由是否已在camel上下文中注册,如果没有,则在进行webservice调用之前注册相同的路由。
有人能告诉我是否有更好的方法来使用骆驼中的RESTful网络服务吗?
我还想知道我正在使用的RESTful Web服务是否使用OAuth 2.0协议,在我正在使用它时,我是否需要更改代码中的任何内容?
问候,尼洛帕尔
谢谢你的回复。
我正在检查路线是否已经存在,以确保我不会最终向骆驼上下文添加重复的路线。
关于长寿路线和路线动态,你能解释一下吗?我如何实现路线动态?
如果您能给我举一些CXF-RS生产商的例子,也会很有帮助。。我阅读了CXFRS的文档,但不能清楚地理解它。
谢谢你,尼洛帕尔
CamelContext context = new DefaultCamelContext();
我的目标
我试图拦截传入的请求,并根据传入请求的ip,我想调用获取报价的动态endpoint
context.addRoutes(new RouteBuilder(){
public void configure(){
from("jetty:localhost:9000/offers")
.process(new Processor(){
public void process(Exchange exchange) throws Exception {
//getting the request object
HttpServletRequest req = exchange.getIn().getBody(HttpServletRequest.class);
//Extracting information from the request
String requestIP=req.getRemoteAddr();
/**
* After getting the ip address i do necessay processing
* and then add a property to exchange object.
* Destination ip address is the address to which i want to
* send my request
*/
exchange.setProperty("operatorAddress",destinationIpAddress);
}
})
.to("direct:getOffers")
.end();
}
});
现在我将调用getOffersendpoint
所以首先我要登记一下
context.addRoutes(new RouteBuilder(){
public void configure(){
from("direct:getOffers")
.toD("jetty:${property.operatorAddress}/api/v2.0/offers?
bridgeEndpoint=true")
.end();
}
});
因此,我们可以访问exchange对象的operatorAddress属性
${property.operatorAddress}
还有,当我们有动态路线时,我们需要打电话
.toD() and not .to()
确切地说,为什么在打电话之前需要检查路线是否已注册?您或许应该设置一个更长寿命的路由,并动态路由以重新分配资源。
至于用骆驼Rest,我认为超文本传输协议组件做得很好,但是也有更高级别的组件可以使用,更适合REST。CXFRS和Restlet,restlet的生产者示例可以在ApacheCamel源单元测试中找到,比如这个RestletProducerGetTest.java.
至于oAuth 2.0,Camel有一些内置的oAuth支持,尤其是对google。寻找gauth组件。甚至还有一个教程,但它可能与您的案例不一致,它仍然可能提供一些背景信息,以便您可以解决您的问题:http://camel.apache.org/tutorial-oauth.html
我正在使用Spring4.0为RESTfulWeb服务创建POC。如果我们只传递字符串或任何其他基本数据类型,它就可以正常工作。 这个很好用。但如果我想将字节流或文件对象传递给函数,我如何编写具有这些参数的函数?我如何编写提供传递字节流的客户端? 我尝试了这个代码,但是得到了415个错误。 客户端代码-使用apache HttpClient
我正在努力寻找一个成熟的例子,说明如何在Spring Boot框架中使用ApacheCamel进行轮询。 我已经看过了:https://camel.apache.org/manual/latest/polling-consumer.html除此之外:https://camel.apache.org/components/latest/timer-component.html但是代码示例不够广泛,我
我需要将文件从文件夹同步到restendpoint。因此,如果文件被放置在特定文件夹中,我需要将该文件发送到接受多部分文件的RESTendpoint。我正在使用ApacheCamel来实现这一点。 RESTendpoint在Spring中编写,如下所示: 我是Camel的新手,并且已经弄清楚了如何通过构建路由并获取文件来轮询目录,但是我无法弄清楚如何使用此路由将此文件放入其余endpoint。这是
我的Ruby项目中有一个模型重发,它包含内容和状态列。 使用EventMachine使用状态为0的所有记录的最佳/最快方式是什么? 我想创建一个简单的worker,它尝试在每个时段(比如每5分钟)查找status==0的记录 我对EventMachine还是新手,找不到那么多关于如何处理DB的例子。 到目前为止,我做了如下工作,但不确定这是否是最好的实现: 任何帮助都将不胜感激
我试图理解Spring MVC Restful架构。想知道有多少种方法可以将SpringMVC与RESTfulWeb服务集成在一起。我可以看到其中一个是使用Rest模板。 这是在Spring MVC中使用rest Web服务的唯一方法吗? 我们可以单独使用SpringMVC开发web应用程序而不使用任何web服务吗。 如果我说错了,请指正。 谢谢你的帮助。
当消费者实例组出现时,会不会对Kafka的性能产生任何影响。重新启动时id已更改。老年人会发生什么。id它是否仍在代理内存中,或者何时将被删除?假设我有1000个消费者实例,并且所有实例都动态分配组。重新启动时的id。 可以为{log.retention.ms'}提供什么列表值。我可以设置为1毫秒吗?