java - 无法运行我的 servlet - 错误 404

标签 java tomcat servlets http-status-code-404

这是我第一次尝试制作一个只显示文本/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/

相关文章:

java - 使用Java JSTL库解析XML文件; x :out does not display node-specific data

reactjs - 使用部署在 Apache Tomcat 上的 Create-react-app 创建的 React 网站出现空白屏幕

java - 让 PrimeFaces JSF 在 Tomcat 上运行

java - Http doPost() 不起作用

java - 为什么我不能在 Servlet 中初始化 Mongo

java - 如何将 Html 文件映射到 web.xml?

java - Java中类之间传递变量

java - 如何将 Excel 电子表格配置为 javax.sql.DataSource?

java - request.getSession().setAttribute() 在 Tomcat 上运行但 Weblogic 失败

java - 我无法从 Google 应用引擎上部署的后端 servlet 连接到我的 google cloud sql 数据库