如何实现没有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