我已经在 IntelliJ 中创建了一个 gradle webapp 项目。
我已设置 Tomcat 8.5.6 来执行该项目。
在文件 webapp/WEB_INF/web.xml
中我定义了一个 servlet
<servlet-mapping>
<servlet>
<servlet-name>RestServlet</servlet-name>
<servlet-class>com.anatoli.customer.service.Home</servlet-class>
</servlet>
</servlet-mapping>
@ApplicationPath("rest")
public class Home extends Application {
}
我有一个简单的java类来展示一些东西
@Stateless
@Named
@Path("test")
public class Customer {
@GET @Path("text")
@Produces("text/plain")
public String getText() {
return "Hello World";
}
}
当我运行项目时,尝试调用 http://localhost:8080/rest/test/text -> 我收到 404
但是如果我运行 http://localhost:8080 ,然后我可以看到 webapp-folder 中的 index.jsp -> tomcat is running
我需要在我的 JEE7 项目中使用注释
最佳答案
Tomcat 是 Web 容器而不是应用程序服务器。
所以你的:
@Stateless
什么都不做@Named
什么都不做@ApplicationPath("rest")
/@Path
什么都不做,除非您在应用程序中或在中提供了 JAX-RS 实现catalina-home/lib
(但考虑到你的问题 - 你没有)
您是否考虑过试用 Apache TomEE? Tomcat + JavaEE 规范实现,应该更适合你
关于JEE7 中的 Tomcat 服务器不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40085400/