这是我第一次尝试制作一个只显示文本/html 的 Servlet 程序。我按原样创建了目录 -
C:\Java_Advanced\DemoServlet
DemoServlet(文件夹) --WEB-INF ----类(包含我的 .class 文件) ----库 ----web.xml --MyServlet.java(与WEB-INF并行) 我正在使用 tomcat apache 8.0.9 这是我的 web.xml -
<web-app>
<servlet>
<servlet-name>Hi</servlet-name>
<servlet-class>MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hi</servlet-name>
<url-pattern>/run</url-pattern>
</servlet-mapping>
</web-app>
我制作了 DemoServlet 中的任何内容的 war 文件 (demo.war)。 我启动了 Tomcat Apache 服务。我提供了默认端口号 8080 以外的端口号。我成功部署了我的 demo.war(我假设是因为消息 OK 打印在上面并且应用程序/demo 的运行即将变为 true(我我被告知真实状态意味着 xml 文件没有问题))。
但我仍然打开浏览器的新选项卡/窗口并输入“localhost:myportnumber/demo/run”,我得到的只是 HTTP 状态错误 404 描述:请求的资源不可用。我试过用 ctrl+F5 刷新,试过不同的浏览器,但仍然给出同样的错误。
这里有什么问题?我在互联网上搜索并在这个网站上找到了一些东西: http://www.ntu.edu.sg/home/ehchua/programming/howto/Tomcat_HowTo.html#TomcatDebug
(一直滚动到显示错误 404 的底部) 一切都很好,直到 3.d 点。在我的例子中,提到的 xxxx 子目录是“demo”,对吗?它确实存在。 demo.war 也与之并行(应该是这样吗?)
C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\demo
C:\Program Files\Apache Software Foundation\Tomcat 8.0\webapps\demo.war
当我打开演示目录时,我没有得到 WEB-INF 子目录。相反,有一个 META-INF 子目录和 MyServlet.java 文件。打开 META-INF 文件夹有一个 MANIFEST.MF 文件。那是什么??那么,这是获得 404 的原因吗?即使是我该如何解决?
最佳答案
看起来你的 war 文件的结构是错误的。
war 文件的内部至少应该是这样的:
WEB-INF/web.xml
WEB-INF/classes/MyServlet.class
查看您的 war 文件。它只是一个 zip 文件。
关于java - 无法运行我的 servlet - 错误 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641037/