我有一个可以在Eclipse中正常工作的Java EE项目。但是当我将它部署到具有普通Tomcat-7的服务器时,它会在每个servlet页面上显示404错误(而.jsp有效)。Tomcat显示404
我试过在那里部署一个.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和我没有一个小想法出了什么问题......
如果您在Windows上开发:有文件名是大小写不敏感的。对于Unix(和jar)文件路径是区分大小写的。另一个secundary问题:可能服务器有UTF-8编码,而你的Windows-1252或类似的。如果使用特殊字符,请检查JSP源的编码是否正确。 - 当然你可能已经改变了servlet上下文:http localhost 8080/servlet/x.jpg与http my.com/x.jpg。 –
不,开发机器和服务器都使用UTF-8字符集在GNU/Linux上运行。 –
进一步猜测:也许一台服务器解包了战争,另一台没有。可能拥有者/权利问题。无论如何,祝你好运。 –