这是我第一次尝试制作仅显示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的原因。即使这是我如何解决的?
看来您的war文件的构造函数是错误的。
战争文件的内部至少应如下所示:
WEB-INF/web.xml WEB-INF/classes/MyServlet.class
查看您的战争档案。这只是一个zip文件。