@Path注释可以有一个空的基本路径吗? 即。 @Path(“/”)
我想提供REST api http://servername/abc
@Path("")
public class YourResource {
@Path("/abc")
@GET
public Responce method1(){
return Response.ok("ok").build();
}
}
当我这样做时,抛出异常
javax.ws.rs.WebApplicationException 在com.sun.jersey.server.impl.uri.rules.TerminatingRule.accept(TerminatingRule.java:66) 在com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108) 在com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
UPDATE - 我在我的GuiceServletContextListener中绑定,如下所示
绑定(YourResource.class)。在(Singleton.class);
服务( “/ ABC”)与(GuiceContainer.class);
答案 0 :(得分:0)
从类
@Path("/")
注释
和
前缀斜杠( / )到方法级别路径注释中,例如@Path("/abc")
请验证您的URI是否映射到java方法,如下所示。
启动服务器时,您可以看到URI如何映射到java方法,如 eclipse控制台 ...
Mapped "{[/static/transit],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.util.List<com.xxx.yyy.zzz.domain.Transit> com.xx.yy.zz.controller.abcDataController.getAllTransit()
=============================================== ===================
<强>更新强>
根据下面的java文档,这两个例子之间存在没有区别,两者都有效。 您可以使用两个 URI的使用前导斜杠,或者不要使用两个 URI的任何前导斜杠是相同。
路径是相对的。对于带注释的类,基URI是 应用程序路径,请参阅ApplicationPath。对于带注释的方法 base URI是包含类的有效URI。为了 用于对基URI进行绝对路径的目的,一个前导'/' 在路径中被忽略,基本URI被视为它们的结束 “/'.
@Path("message")
public class MessageServices {
@PUT
@Path("sendsms")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.APPLICATION_JSON})
public Response sendSms() {
//....
}
}
或强>
@Path("/message")
public class MessageServices {
@PUT
@Path("/sendsms")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({MediaType.APPLICATION_JSON})
public Response sendSms() {
//....
}
}
答案 1 :(得分:0)
在路径(“ /”)中添加斜线,如下所示:
@Path("/")
public class YourResource {
...
}