从camel 2.17.03更新到2.20.2之后,如果我尝试从StringMapImpl / SoapMessage调用get方法,我会收到异常
例如,此代码段在2.17.03下正常工作:
<setBody>
<simple>
${header.CamelCxfMessage.get("http.base.path")}
</simple>
</setBody>
但是在2.20.2下我得到以下例外:
意外异常:无法调用方法:get(&#34; http.base.path&#34;) 在null由于: org.apache.camel.component.bean.ParameterBindingException:错误 在方法的参数绑定期间:public java.lang.Object 参数中的org.apache.cxf.message.StringMapImpl.get(java.lang.Class) #0类型:类java.lang.Class,值类型:class java.lang.String和value:http.base.path
org.apache.camel.language.bean.RuntimeBeanExpressionException:失败 调用方法:get(&#34; http.base.path&#34;)在null由于: org.apache.camel.component.bean.ParameterBindingException:错误 在方法的参数绑定期间:public java.lang.Object 参数中的org.apache.cxf.message.StringMapImpl.get(java.lang.Class) #0类型:类java.lang.Class,值类型:class java.lang.String和value:http.base.path
这是一个Bug还是用简单的语言语法改变了一些东西?
答案 0 :(得分:0)
Apache CXF类StringMapImpl
[1]使用get
类型的Class
方法,以及您在字符串值中传递的Camel路由。所以从一开始就错了。