我正在尝试构建一个非常简单的HTTP代理,与http://camel.apache.org/how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html中描述的完全相同。
我使用wireshark来查看到底发生了什么。
当我在http://localhost:8080/myapp
上发出请求时,发送到真实服务器的请求为http://realserverhostname:8090/myapp?bridgeEndpoint=true&throwExceptionOnFailure=false
。
当我执行参数化请求http://localhost:8080/myapp?toto=tata
时,发送到真实服务器的请求为http://realserverhostname:8090/myapp?toto=tata
。
因此,当没有请求参数时,端点参数bridgeEndpoint=true&throwExceptionOnFailure=false
将被发送到真实服务器,如果存在参数,则不会发送它们。
有人可以解释这种行为的原因吗?
即使没有请求参数,我如何强制camel不发送端点参数?
答案 0 :(得分:0)
似乎这是骆驼码头组件中的一个错误。 替换
<to uri="jetty:http://realserverhostname:8090/myapp?bridgeEndpoint=true&throwExceptionOnFailure=false"/>
带
<to uri="http://realserverhostname:8090/myapp?bridgeEndpoint=true&throwExceptionOnFailure=false"/>
或
<to uri="http4://realserverhostname:8090/myapp?bridgeEndpoint=true&throwExceptionOnFailure=false"/>
将解决问题。
已在jetty-component https://issues.apache.org/jira/browse/CAMEL-10064
上创建了一个错误