2013-08-29 63 views
0

我有一个可以在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和我没有一个小想法出了什么问题......

+1

如果您在Windows上开发:有文件名是大小写不敏感的。对于Unix(和jar)文件路径是区分大小写的。另一个secundary问题:可能服务器有UTF-8编码,而你的Windows-1252或类似的。如果使用特殊字符,请检查JSP源的编码是否正确。 - 当然你可能已经改变了servlet上下文:http localhost 8080/servlet/x.jpg与http my.com/x.jpg。 –

+0

不,开发机器和服务器都使用UTF-8字符集在GNU/Linux上运行。 –

+0

进一步猜测:也许一台服务器解包了战争,另一台没有。可能拥有者/权利问题。无论如何,祝你好运。 –

回答

0

对于每个servlet我们添加2个主要标签< servlet>和< servlet -mapping>像

<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我还没有找到<的servlet>标记的servlet类映射

+0

嗯,我已经插入了servlet标签默认类org.apache。 catalina.servlets.DefaultServlet',因为它描述[这里](https://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html)。但没有任何变化。 –