使用Jersey和@ApplicationPath批注加载资源
我正在尝试在不使用web.xml的情况下将基本的jersey restful服务部署到Tomcat7:
@WebServlet(loadOnStartup=1) @ApplicationPath("resources")
@Path("/mypath/{name}")
public class MyResource extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> s = new HashSet<Class<?>>();
s.add(MyResource.class);
return s;
}
@GET
@Consumes("text/plain")
@Produces("text/plain")
public String getWelcome(@PathParam(value = "name") String name) {
return "Welcome to jax-rs " + name;
}
}
尝试访问时出现404错误: / myapplication / resources / mypath / sample 。
我可以使用@WebServlet
注释来部署servlet ,因此这与不将web.xml加载到Tomcat7中的servlet无关。
通过阅读Jersey的文档,运行时应该扫描扩展Application
和执行的类,并getClasses()
加载所有根资源。
回答:
您正在使用哪个版本的Jersey?尝试将应用程序和资源分为两个类。绝对删除@WebServlet
注释。也就是说,有一个类扩展了Application并带有@ApplicationPath
注释@Path
。
编辑:确保jersey-servlet.jar
包含在您的WAR文件中。
以上是 使用Jersey和@ApplicationPath批注加载资源 的全部内容, 来源链接: utcz.com/qa/432544.html