【问题标题】:@pathparam along with POST payload for apache-cxf webservice@pathparam 以及 apache-cxf webservice 的 POST 有效负载
【发布时间】:2018-05-24 06:44:39
【问题描述】:

由我的 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 Internal server error。

org.apache.camel.CamelExecutionException:在交易所执行期间发生异常 原因:org.apache.camel.InvalidPayloadException:没有可用的类型:int 但有值:com.dev.tp.FObj

【问题讨论】:

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


    【解决方案1】:

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

    我建议你看看this article

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多