无法运行我的servlet - 错误404

时间:2014-07-08 20:19:59

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

这是我第一次尝试制作一个只显示text / html的Servlet程序。我按原样创建了目录 -

C:\ Java_Advanced \ DemoServlet

DemoServlet(文件夹) --Web-INF ---- classes(包含我的.class文件) ---- LIB ---- 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消息而且应用程序/演示的运行正在 true (I我被告知真正的状态意味着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

当我打开demo目录时,我没有得到一个WEB-INF子目录。而是有一个META-INF子目录和它的MyServlet.java文件。打开META-INF文件夹有一个MANIFEST.MF文件。那是什么?因此,这是获得404的原因。即使是我如何解决它?

2 个答案:

答案 0 :(得分:0)

看起来你的war文件的结构是错误的。

war文件的内部至少应该是这样的:

WEB-INF/web.xml
WEB-INF/classes/MyServlet.class

查看你的战争档案。它只是一个zip文件。

答案 1 :(得分:0)

我强烈建议使用正确的工具来构建Java EE应用程序。您可以将Eclipse与WTP一起使用。它将创建正确的项目结构,允许您更轻松地创建和验证描述符,并且您将能够通过该工具将应用程序直接部署到服务器。

war文件的当前结构一定存在问题(很难从你的描述中判断什么是文件/文件夹嵌套)或构建war本身。