Apache camel 驼峰HTTP端点特殊字符(+;)问题

Apache camel 驼峰HTTP端点特殊字符(+;)问题,apache-camel,Apache Camel,我在通过camel recipientlist(2.14)访问http端点时遇到问题 ${property[inputSearchParameter.url]} 当url有一个+符号(在其中一个参数中)时,它将被打断。 我还尝试了%2B,然后它被转换为空间 有一个JIRA: 但是,当我使用RAW时,它不起作用,并获得以下跟踪(似乎RAW被传递给了服务): 原因:java.net.URISyntaxException:索引558处的查询中存在非法字符:http://someurl?facet

我在通过camel recipientlist(2.14)访问http端点时遇到问题


${property[inputSearchParameter.url]}
当url有一个+符号(在其中一个参数中)时,它将被打断。 我还尝试了%2B,然后它被转换为空间

有一个JIRA:

但是,当我使用RAW时,它不起作用,并获得以下跟踪(似乎RAW被传递给了服务):

原因:java.net.URISyntaxException:索引558处的查询中存在非法字符:http://someurl?facet=true&binary=true&-fq=nm_任务类型%3A%28OTM_查询+或+OTM_客户端查询%29和方面。查询=%7B%21key%3D%22%5B*+到现在-30%5D%22%7Ddt_创建了%3A%5B*+到现在-30天%5D和方面。查询=%7B%21key%3D%22%5BNOW-30DAY+到现在-15天%5D%22%7Ddt_创建了%3A%5BNOW-30DAY+到现在-15DAY%5D和方面。查询=%7B%21key-NOW-15d+5D%5D%5ddt创建了%22%5Dd%3A%5BNOW-15DAY+TO+NOW-7DAY%5D和facet.query=%7B%21key%3D%22%5BNOW-7DAY+TO+NOW-1DAY%5D%22%7Ddt_创建了%3A%5BNOW-7DAY+TO+NOW-1DAY%5D和facet.query=RAW({!key=“[NOW-1DAY-TO-NOW]”创建的日期:[NOW-1DAY-TO-NOW+1DAY])&q=*%3A rows=0
位于java.net.URI$Parser.fail(URI.java:2829)
位于java.net.URI$Parser.checkChars(URI.java:3002)
位于java.net.URI$Parser.parseHierarchy(URI.java:3092)
位于java.net.URI$Parser.parse(URI.java:3034)
位于java.net.URI。(URI.java:595)
位于org.apache.camel.util.URISupport.createURIWithQuery(URISupport.java:334)
位于org.apache.camel.util.URISupport.createRemainingURI(URISupport.java:428)
位于org.apache.camel.component.http.HttpComponent.createEndpoint(HttpComponent.java:248)
位于org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:122)
位于org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:525)
... 52多

任何帮助都会出现。

我还没有对此进行测试,但是在传递到camelHTTP组件之前,您能否将标题“CamelHttpPath”设置为URL,并查看它是否有帮助:

<setHeader headerName="CamelHttpPath">
  <simple>YOUR_URL</simple>
</setHeader>

你的网址

%20是+的替代品,当+代表一个空格时哦…k…..你知道我如何获得+运行吗…..我在查看源代码,RAW甚至没有在跟踪中的上述方法中使用….我如何通过驼峰收件人列表获得+运行我尝试了%2B而不是%20。+也是我参数的一部分:facet.query={!key=“[NOW-1DAY TO NOW]”创建的dt_:[NOW-1DAY TO NOW+1DAY]NOW+1->不使用camel
Caused by: java.net.URISyntaxException: Illegal character in query at index 558: http://someurl?facet=true&binary=true&-fq=nm_task_type%3A%28OTM_QUERY+OR+OTM_CLIENT_QUERY%29&facet.query=%7B%21key%3D%22%5B*+TO+NOW-30%5D%22%7Ddt_created%3A%5B*+TO+NOW-30DAY%5D&facet.query=%7B%21key%3D%22%5BNOW-30DAY+TO+NOW-15DAY%5D%22%7Ddt_created%3A%5BNOW-30DAY+TO+NOW-15DAY%5D&facet.query=%7B%21key%3D%22%5BNOW-15DAY+TO+NOW-7DAY%5D%22%7Ddt_created%3A%5BNOW-15DAY+TO+NOW-7DAY%5D&facet.query=%7B%21key%3D%22%5BNOW-7DAY+TO+NOW-1DAY%5D%22%7Ddt_created%3A%5BNOW-7DAY+TO+NOW-1DAY%5D&facet.query=RAW({!key="[NOW-1DAY TO NOW]"}dt_created:[NOW-1DAY TO NOW+1DAY])&q=*%3A*&rows=0
    at java.net.URI$Parser.fail(URI.java:2829)
    at java.net.URI$Parser.checkChars(URI.java:3002)
    at java.net.URI$Parser.parseHierarchical(URI.java:3092)
    at java.net.URI$Parser.parse(URI.java:3034)
    at java.net.URI.<init>(URI.java:595)
    at org.apache.camel.util.URISupport.createURIWithQuery(URISupport.java:334)
    at org.apache.camel.util.URISupport.createRemainingURI(URISupport.java:428)
    at org.apache.camel.component.http.HttpComponent.createEndpoint(HttpComponent.java:248)
    at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:122)
    at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:525)
    ... 52 more
<setHeader headerName="CamelHttpPath">
  <simple>YOUR_URL</simple>
</setHeader>