我试着在camel toDeip文档页面中使用这个例子
from("direct:login")
.setHeader(Exchange.HTTP_PATH, simple("/login"))
.setHeader(Exchange.HTTP_QUERY, simple("userid=${header.userName}"))
.toD("http:myloginserver:8080")
.removeHeader(Exchange.HTTP_PATH)
.removeHeader(Exchange.HTTP_QUERY);
但是没有使用报头Exchange.HTTP_PATH
,因此作为结果,调用下面的URL:http://myloginserver:8080?userid=xxx
而不是http://myloginserver:8080/login?userid=xxx
。
我调试了代码,发现问题可能出在第96行的createPreProcessor
方法中的org.apache.camel.http.base.HttpSendDynamicAware
类中。
在这个方法中,toD中的url被解析,路径是一个空字符串“",并且不检查是否设置了Exchange.HTTP_PATH
。
我是从camel 3.11.x升级的,它以前可以工作,但是在那个版本中没有HttpSendDynamicAware
类。
有没有办法在不改变代码的情况下让它工作?
谢谢
1条答案
按热度按时间jtoj6r0c1#
我在Apache Camel JIRA https://issues.apache.org/jira/browse/CAMEL-18782中创建了问题
多亏了易卜生
这是一个错误,将在下一个版本中修复。
解决方法如下: