我的impl类实现的界面看起来像这样
@POST
@Path("/callA/{A}")
public FObj invokeA(@PathParam("A") int a,FObj fobj);
我的customRouteBuilder
正在将请求路由到上述公开的服务
.choice().when().simple("${header.operationName} == 'CallA'")
.to("bean:BeanA?method=invokeA")
但是当我通过从有效负载和路径参数设置对象从Rest客户端命中服务时,我得到500内部服务器错误。
org.apache.camel.CamelExecutionException:在交换机上执行期间发生异常 引起:org.apache.camel.InvalidPayloadException:没有可用的类型为:int但有值:com.dev.tp.FObj
答案 0 :(得分:0)
当您点击服务时,如果您使用的是CXFRS组件(我猜你是),则设置为header.operationName
的值为invokeA
。 @PathParam
来自jaxrs规范。骆驼对此一无所知。当您使用两个参数调用方法时,它会尝试将body有效负载转换为第一个参数,并且您会看到异常。
我建议你看一下this article