在RESTful服务中使用MessageBodyReader获取多个参数

时间:2011-06-11 14:10:47

标签: java jersey jax-rs

以下方法不允许我的servlet容器启动:

@PUT
public String upload(final Customer customer, final Control control) {
  // ...
}

我得到了,并不奇怪:

SEVERE: Missing dependency for method ... at index 0
SEVERE: Missing dependency for method ... index 1
SEVERE: Method, ..., is not recognized as valid resource method.

我为每种类型实现了MessageBodyReaders。删除任何参数使servlet容器能够正常启动,因此我怀疑必须对将通过Entity-Providers解析的参数数量进行限制。

问题是我需要这两个参数,因为我提供了SOAP和REST支持,当然,我不能自由地改变方法签名,而且我也没有想要创建一个特定的Jersey方法和一个特定的JAX-WS方法作为入口点。

我正在使用Jersey 1.7。

1 个答案:

答案 0 :(得分:1)

JAX-RS只允许一个实体参数。共振非常简单:每个请求最多只能有一个主体(规范不支持多部分) 所以你必须创建两个方法。 顺便说一句,我认为将JAXRS和JAXWS混合在同一个类中并不是一个好习惯。