我有一個可以在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上運行。 –
進一步猜測:也許一臺服務器解包了戰爭,另一臺沒有。可能擁有者/權利問題。無論如何,祝你好運。 –