如何实现没有web.xml的jaxrs应用程序

我试图在没有web.xml配置的情况下部署一个非常简单的jaxrs应用程序,并且无法使其正常工作。 我希望访问的URL是serverandport / {appname} / rest / welcome / hello,我想我必须遗漏一些显而易见的东西。

应用

@ApplicationPath("/rest") public class EngineApp extends Application { @Override public Set<Class> getClasses() { Set<Class> s = new HashSet<Class>(); s.add(RestTestImpl.class); return s; } } 

资源

 @Path("/welcomes") public class RestTestImpl { @GET @Path("hello") public String sayPlainHello() { return "Hi from Rest"; } } 

POM片段

 org.apache.maven.plugins maven-war-plugin 2.1.1  false  

编辑:在下面的响应之后,我尝试使用空的web.xml以及以下web.xml。 打扰也返回404,但是下面的xml表示“Servlet javax.ws.rs.core.Application不可用”:

web.xml中

    javax.ws.rs.core.Application 1   javax.ws.rs.core.Application /*   

您需要将应用程序部署到符合Servlet 3.0的容器中才能利用此function。 试试GlassFish 3.x或Tomcat 7 。

我发现了一个非常相似的问题,发现的问题也可以帮到你。 我肯定会尝试使用带有3.0架构版本的空web.xml来查看它是否有帮助。

JBoss AS 7 Restful Webservices不能自动部署

对于那些希望使用Servlet 2.0规范的人,创建一个web.xml并添加jersey servlet maven依赖项:

    REST Service com.sun.jersey.spi.container.servlet.ServletContainer  javax.ws.rs.Application com.mycompany.rest.engine.EngineApp    REST Service /rest/*   

添加对pom的依赖

  com.sun.jersey jersey-servlet 1.13