我正在学习 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/