2011-06-20 71 views
0

我寫了一個我需要用tomcat部署的servlet。我的服務器是tomcat 6.我第一次嘗試只是拖動戰爭文件,它解壓縮,把我無法訪問URL(404錯誤)。然後我甚至刪除了部署,並嘗試使用tomcat管理器。當我點擊部署時說'確定',但沒有顯示在部署的應用程序列表中。tomcat 6 webapp部署

我用Eclipse(ganymede)來創建war文件。解壓後的目錄結構看起來不錯。我在localhost:8080上運行。這是我的web.xml。也許這裏有什麼問題?

<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" id="WebApp_ID" version="2.5"> 

    <servlet> 
     <servlet-name>Auth</servlet-name> 
     <servlet-class>serv.Authenticate</servlet-class> 
     </servlet> 
     <servlet-mapping> 
     <servlet-name>Auth</servlet-name> 
     <url-pattern>/authenticate</url-pattern> 
     </servlet-mapping> 
    </web-app> 

我讀過,也許我需要做一些事情server.xml。但是我環顧四周,沒有任何關於tomcat的默認web應用程序的條目。如何註冊我的應用程序,以便tomcat像其他人一樣提供服務?

回答

0

web.xml看起來不錯,但不可能知道爲什麼你不知道更多關於你的環境的404。

問題可能是該servlet沒有加載,或者如果它正在加載,該servlet找不到該URL。

要查看您的servlet是否正在加載,請向servlet的init方法添加一條日誌語句(System.out將執行)。以下行添加到您的servlet元素也使servlet將不需求,但在啓動時加載:

<load-on-startup>0</load-on-startup> 

然後,您可以檢查該servlet被認可和加載。

然後添加一個日誌語句到doGet/doPost等方法來輸出請求對象的.getPathInfo。它可能有助於向servlet映射添加通配符以及測試:

<url-pattern>/authenticate/*</url-pattern>