2013-08-29 62 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)。但沒有任何變化。 –