一尘不染

无法运行我的servlet-错误404

tomcat

这是我第一次尝试制作仅显示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消息,并且应用程序/
demo的Running正在变为 (我被告知,真状态表示xml文件没有问题))。

但是我仍然打开浏览器的新选项卡/窗口,然后键入“ localhost:myportnumber / demo / run”,我得到的只是HTTP
Status Error 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软件基金会\ Tomcat 8.0 \ webapps \ demo.war

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


阅读 181

收藏
2020-06-16

共1个答案

一尘不染

看来您的war文件的构造函数是错误的。

战争文件的内部至少应如下所示:

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

查看您的战争档案。这只是一个zip文件。

2020-06-16