Java apachecamel:为http4客户端设置cookie

Java apachecamel:为http4客户端设置cookie,java,scala,apache-camel,apache-httpclient-4.x,Java,Scala,Apache Camel,Apache Httpclient 4.x,我正在玩ApacheCamel,在从“琐碎的示例”阶段过渡到“但有这些令人恼火的细节”阶段时遇到了一些问题。至关重要的是,如何进入并显式修改端点 在本例中,我需要为http客户端设置一个身份验证cookie。我有一个cookie存储对象,但不知道如何强制客户端使用它。我尝试过使用HttpClientConfigurer,但是HttpClient没有公开cookie存储,而且它似乎也没有被调用 我当前的代码: class CookieClientConfigurer(cs: CookieStore

我正在玩ApacheCamel,在从“琐碎的示例”阶段过渡到“但有这些令人恼火的细节”阶段时遇到了一些问题。至关重要的是,如何进入并显式修改端点

在本例中,我需要为http客户端设置一个身份验证cookie。我有一个cookie存储对象,但不知道如何强制客户端使用它。我尝试过使用
HttpClientConfigurer
,但是
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/ticket/335729/show”
端点设置cookie存储吗?

因此,在进一步的调查中,上述方法是有效的(它在其他地方失败了),尽管我仍然对使用运行时类型检查来公开
HttpClient
的实现感到不满,因此,关于如何做得更好的答案是最受欢迎的

这里有一个类似的问题,目前还没有解决方案,但是http4的文档声称您应该能够将?cookieStore=customInstance附加到URI