JEE7 中的 Tomcat 服务器不可用

标签 tomcat jakarta-ee

我已经在 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/

相关文章:

apache - 在 Tomcat 前面有一个 apache 网络服务器的原因是什么?

java - 与 Hibernate hbm2ddl.auto 混淆

java - Java RMI 是 Axis2 SOAP 的良好替代品吗?

java - Spring安全中的表

java - illegalargumentexception - 项目在 Netbeans 上运行但不作为 War 文件在 Tomcat 上运行

java - tomcat 8.0.27 和 System.getProperty ("file.separator")

jakarta-ee - 如何在jboss中为resteasy生成wadl文件

java - 消息队列监听器和 RESTful 集成

android - 如果 Tomcat 占用 80 端口,那么从 Android 到 Netty 远程服务器的 RPC 调用使用哪个端口?

tomcat - Amazon EC2 Tomcat 无法使用我的域颁发的 SSL 证书