使用泽西1.7,JAX-WS 2.2.3,Tomcat的6.0.30和下面的方法声明防止泽西servlet来启动:泽西:当一个类同时具有JAX-RS和JAX-WS注解
@POST
@Produces("text/plain")
public void postIt(@WebParam(name = "paramOne") final String paramOne,
final String paramTwo) {
// ...
}
发生的例外是:
SEVERE: Missing dependency for method public
java.lang.String com.sun.jersey.issue.MyResource.postIt(
java.lang.String,java.lang.String) at parameter at index 0
SEVERE: Method, public void
com.sun.jersey.issue.MyResource.postIt(
java.lang.String,java.lang.String),
annotated with POST of resource,
class com.sun.jersey.issue.MyResource,
is not recognized as valid resource method.
如果@WebParam
注释被删除,这一切工作正常。
现在请记住,我并不是仅仅尝试使用单纯的字符串,而是将复杂的使用SOAP编组/解组的对象迁移到RESTful服务,但是我必须提供两个接口一段时间,而没有打破了之前的WASD。该方法只是一个简约的场景。
你有没有任何关于这个状态的想法?它被修复了吗?建议?
我从来没有在RESTful web服务中看到过'WebParam'注释(即使我刚刚发现它在jax-rs包中存在)。你想做什么?参数是来自查询,路径还是标题?你能否提供请求服务器的HTTP请求? – 2011-06-09 13:41:07
'WebParam'注释来自jax-ws。我想要实现的是使用相同的方法来处理SOAP,JSON,XML,纯文本和HTML。对于SOAP,我使用的是Sun的jax-ws实现,其余的我正在使用Jersey ...顺便说一句,如果您使用WebParam,您将获得WSDL而不是参数名称,例如'arg0','arg1',您使用_pretty_名称获取参数。 – chahuistle 2011-06-09 21:43:21
经过一些调试后,我发现这两个参数缺少JAX-RS注释,因此两者都将从请求体中读取。 JAX-RS 1.1(第3.3.2.1节)规定:“资源方法不能有多于一个参数,不用上面列出的注释之一注释。”,所以我的不好... – chahuistle 2011-06-16 20:05:19