java - MANIFEST.MF Tomcat 的主类无效

标签 java tomcat intellij-idea

我正在学习 servlet 和 jsps,现在我正在尝试生成我的 WAR 文件。据我所知,我需要创建一个 MANIFEST.MF 文件才能完成它。我可以使用 Intellij IDEA 生成 WAR 文件,但是一旦我将它复制到/webapps(tomcat 主目录的子目录)并运行 Tomcat,我就无法运行该应用程序。我在声明 Main-Class 属性的 MANIFEST.MF 中收到警告说 Invalid main class。我这样做:Main-Class: demo.Hello

// Hello.java
package demo;
@WebServlet(name = "Hello")
public class Hello extends HttpServlet {
    public Hello() { super(); }
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         PrintWriter out = response.getWriter();
         out.println("Hello");
    }
}


// MANIFEST.MF - class path is set to where Hello.java is stored
Manifest-Version: 1.0
Class-Path: /home/.../src
Main-Class: demo.Hello

你有什么解决办法吗?

注意:Intellij IDEA 直接在 localhost:8080 上运行 Web 应用程序,即使我设置了另一个应用程序上下文。我不知道为什么。

最佳答案

对于 Web 应用程序,无需在 Manifest 文件中添加 Main-Class 条目。此条目用于使您的 jar 可执行。

关于java - MANIFEST.MF Tomcat 的主类无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447840/

相关文章:

使用 DeployTask 类远程部署 war 文件的 Java 代码

java - 如何在 IntelliJ 上设置 CHelper 并进行配置?

maven - Kotlin-无法在intellij中运行 “hello world”

java - InputStream从offset处读取数据

java - 如何将 JDBC mysql 驱动程序添加到 Eclipse 项目中?

java - 从 Tomcat 应用程序中不同监听器之间的上下文获取属性

java - SSL 握手失败时的自定义错误

android-studio - Android Studio 和 Intellij 的滚动条提示配色方案

java - 使用 OR 运算符时它是否运行两个参数?

java - 何时在字符串文字上使用 intern()