我正在玩ApacheCamel,在从“琐碎的示例”阶段过渡到“但有这些恼人的细节”阶段时遇到了一些问题。至关重要的是,如何进入并显式修改endpoint。
在这种情况下,我需要为超文本传输协议客户端设置一个auth cookie。我有一个cookie存储对象,但不知道如何强制客户端使用它。我试过使用HttpClientConfigrer
,但HttpClient
没有公开cookie存储,而且它似乎也没有被调用。
我现在的代码:
class CookieClientConfigurer(cs: CookieStore) extends HttpClientConfigurer {
/**
* Not very nice, relying on a runtime type check. But what can you do?
*/
def configureHttpClient(client: HttpClient) {
client match {
case client: AbstractHttpClient => client.setCookieStore(cs)
}
}
}
并由以下人员调用:
val username = args(0)
val password = args(1)
val context = new DefaultCamelContext
locally {
// First we need to grab some authentication cookie stuff!
val httpClient = new DefaultHttpClient
val post = new HttpPost("https://rt")
val nvps = List(new BasicNameValuePair("username", username), new BasicNameValuePair("password", password))
post.setEntity(new UrlEncodedFormEntity(asJavaList(nvps)))
httpClient.execute(post)
val ccc = new CookieClientConfigurer(httpClient.getCookieStore())
val httpComp = context.getComponent("https4", classOf[HttpComponent])
httpComp.setHttpClientConfigurer(ccc)
}
val routes = new RouteBuilder {
def configure() = {
from("timer://foo?fixedRate=true&delay=0&period=10000")
.to("https4://rt/REST/1.0/ticket/335729/show")
.to("file://test")
}
}
context.addRoutes(routes)
context.start()
System.in.read()
context.stop()
知道我如何为"https4://rt/REST/1.0/罚单/335729/show"
endpoint设置cookie存储吗?
因此,在进一步的调查中,上述方法是有效的(它在其他地方失败了),尽管我仍然对使用运行时类型检查来公开HttpClient
的实现不满意,所以非常欢迎关于如何做得更好的答案!
我试图使用Apache Camel Quartz2实现一个调度器,它每分钟执行一次路由,并按预期执行一些任务。我使用spring DSL实现与apache camel相关联的路由,如下所示: 根据日志,它不会记录为路由记录的消息,例如Direct:DomainsWithFTPUsers等等。请指导如何实现同样的目标。
遵循官方文件(https://camel.apache.org/manual/component-dsl.html#_using_component_dsl)我创建了以下代码: 但是中的告诉我: 并且中的特性不建议导入相应的库。 有人能给我指出正确的方向吗? 我必须理解的概念才能做到这一点吗?
我们需要的是直接的API来设置和使用集群消息队列。我们最初的计划是使用Camel在集群JMS或ActiveMQ队列上进行消费/生产。Kafka如何使这项任务变得更容易?在任何一种情况下,应用程序本身都将在WebLogic服务器上运行。 消息传递将是点对点类型,其中有多个相同服务的实例在运行,但根据负载平衡策略,只有一个实例应该处理消息并发出结果。消息队列也是群集的,因此服务实例或队列实例的失败都不
考虑到apache Camel,我有一个问题:是否可以通过代码来创建全局拦截器,例如AOP?拦截器应该跳过endpoint还是模仿endpoint? 提前致谢
我正在尝试使用Apache Camel的Http4组件连接到一个需要基本身份验证的HTTP URL。我正在通过Exchange从camel处理器设置凭证。HTTP_QUERY头。我这样配置我的路由: 我的处理器看起来像: 它导致: 密码好像改成了xxxxxx,但我不确定。 当我尝试在URI中硬编码用户和密码时,它运行良好,但是我需要一种以编程方式设置这些值的方法,因为用户和密码存储在DB中。
我对骆驼生产商有很好的了解,但我不能对各种骆驼消费者保持清醒的头脑。特别是事件驱动消费者和轮询消费者,camel如何知道为这些消费者调用回调? 消费者的一般流量是多少?