我有一个在 Eclipse 中运行良好的 Java EE 项目。但是,当我将其部署到具有普通 Tomcat-7 的服务器时,它会在每个 servlet 页面上显示 404 错误(而 .jsp 有效)。
我尝试在那里部署一个 .war 文件,并尝试只复制整个项目文件夹,包括 WEB-INF 目录。结果是一样的。
web.xml 文件包含以下内容:
<?xml version="1.0" encoding="ASCII"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>acs</display-name>
<servlet>
<display-name>jsp</display-name>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.js</url-pattern>
<url-pattern>*.svg</url-pattern>
<url-pattern>*.kml</url-pattern>
</servlet-mapping>
</web-app>
每个 servlet 类都包含这样的注释
@WebServlet("/full")
那么为什么会这样呢?有没有办法知道 Tomcat 试图在何处搜索该 servlet?或者其他的东西。所以现在我就像站在墙前,它向我显示 404,我一点也不知道出了什么问题......
最佳答案
对于每个 servlet,我们都添加了 2 个主要标签
<servlet>
<display-name>jsp</display-name>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
虽然对于“default”servlet,我还没有找到带有servlet-class映射的
关于java - Tomcat 显示 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511469/