Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
apachecamel URL使用空格转义_Url_Apache Camel_Escaping_Space_Apache Servicemix - Fatal编程技术网

apachecamel URL使用空格转义

apachecamel URL使用空格转义,url,apache-camel,escaping,space,apache-servicemix,Url,Apache Camel,Escaping,Space,Apache Servicemix,我有一个简单的驼峰路由,它处理传入的Http请求,然后根据资源路径路由到其他Http使用者。一切正常,但我遇到了java.net.URISyntaxException:在路径中使用空格时路径中的非法字符。 其他特殊角色似乎也能很好地发挥作用 我正在构建一个RESTful API,目前正在使用浏览器测试我的API 以下是我路线的春季DSL: <route id="API"> <from uri="jetty:http://0.0.0.0/api?matchOnUriPref

我有一个简单的驼峰路由,它处理传入的Http请求,然后根据资源路径路由到其他Http使用者。一切正常,但我遇到了java.net.URISyntaxException:在路径中使用空格时路径中的非法字符。 其他特殊角色似乎也能很好地发挥作用

我正在构建一个RESTful API,目前正在使用浏览器测试我的API

以下是我路线的春季DSL:

<route id="API">
   <from uri="jetty:http://0.0.0.0/api?matchOnUriPrefix=true"/>
   <bean ref="basicAuthBean"/>
   <choice>
     <when>
       <simple>${in.header.CamelHttpPath} contains 'blah1'</simple>
       <to uri="http://localhost:10001/api?bridgeEndpoint=true&amp;throwExceptionOnFailure=false"/>
     </when>
      <when>
       <simple>${in.header.CamelHttpPath} contains 'blah2'</simple>
       <to uri="http://localhost:10002/api?bridgeEndpoint=true&amp;throwExceptionOnFailure=false"/>
     </when>
   </choice>
</route>

${in.header.CamelHttpPath}包含“blah1”
${in.header.CamelHttpPath}包含“blah2”
我在Camel上下文上启用了跟踪,发现CamelHttpPath已将转义字符“%20”替换为空格。我还看到了CamelHttpUri,它并没有逃脱这个特殊角色

在我的Spring DSL中,我在choice元素之前添加了以下内容:

<setHeader headerName="CamelHttpPath">
  <simple>${in.header.CamelHttpUri}</simple>
</setHeader>

${in.header.CamelHttpUri}
这解决了我的问题,但我很肯定有更好的方法。我是否错过了设置某些属性,或者我的路线DSL不准确

另外,CamelHttpPath和CamelHttpUri之间有什么区别

我还应该提到,我在ApacheServiceMix 4.4.2中使用了Camel上下文,使用的Camel版本是2.8.5


提前感谢您的帮助

我想我们已经在以后的Camel版本中修复了这个问题,因为它将像Camel 2.10.4等版本一样发布。我记得当时正在进行空间修复。

由于Camel 2.8.x不再受支持,您需要自己修补此问题。
或者升级到ServiceMix 4.5.0,其中包括Camel 2.10.3。

感谢您的回复。我认为服务4.5还没有向公众发布。在那之前,我将继续我的工作。