@pathparam以及apache-cxf webservice

时间:2018-05-24 06:44:39

标签: rest web-services apache-camel cxf path-parameter

我的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

1 个答案:

答案 0 :(得分:0)

当您点击服务时,如果您使用的是CXFRS组件(我猜你是),则设置为header.operationName的值为invokeA@PathParam来自jaxrs规范。骆驼对此一无所知。当您使用两个参数调用方法时,它会尝试将body有效负载转换为第一个参数,并且您会看到异常。

我建议你看一下this article