2011-11-24 80 views
5

我正在嘗試使用MyEclipse和JBoss 5作爲應用程序服務器創建一個名爲「web」的非常基本的Web項目。我創建了一個名爲「pages」的包,裏面有一個名爲「UserInterface」的servlet。問題是當我部署項目並運行服務器時,我總是收到錯誤報告:HTTP狀態404 - Servlet不可用。JBoss錯誤報告:HTTP狀態404 - Servlet不可用

這是我的web.xml的一部分:

<servlet> 
    <servlet-name>UserInterface</servlet-name> 
    <servlet-class>pages.UserInterface</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>UserInterface</servlet-name> 
    <url-pattern>/UserInterface</url-pattern> 
    </servlet-mapping> 

,我航行在瀏覽器中:http://localhost:8080/web/UserInterface

我在做什麼錯在這裏?

感謝

+0

已部署的Web應用程序中的文件列表將很有用。你是否將它部署爲.war? –

+1

也是使用context path = web部署的項目嗎?你可以訪問根本地主機:8080 /網絡? –

+0

當服務器啓動或應用程序正在部署時,您是否在日誌或控制檯輸出中看到任何問題? – Santosh

回答

2

我仍然不知道什麼是錯的,但我創建了另一個名爲user的servlet,並且在web.xml中,我在類之前添加了/ servlet並在瀏覽器中導航到它(http:// localhost :8080 /網絡/ servlet /用戶),它的工作。

<servlet> 
    <servlet-name>User</servlet-name> 
    <servlet-class>pages.User</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>User</servlet-name> 
    <url-pattern>/servlet/User</url-pattern> 
    </servlet-mapping> 

謝謝大家的幫助!

2

HTTP狀態404 - Servlet是不可用。

的servlet加載失敗(如果servlet沒有正確web.xml聲明或URL是錯誤的,那麼你應該不是看到「404 - 未找到資源」)。簡而言之,<servlet-class>是錯誤的或具體的類文件不存在於/WEB-INF/classes

+0

Servlet異常會導致500錯誤嗎? –

+0

@Andrei:只有在被'service()','doGet()'拋出時等等。但在這種情況下,servlet完全不可用。容器知道servlet的URL映射,但手頭沒有有效的工作實例,因爲實例化/初始化失敗。 – BalusC

+0

嗯,是的,但是我從我自己的蹩腳編碼中肯定地知道,例如,如果我有一個帶有引發NPE的init()重寫方法的servlet,那麼訪問該servlet(例如在Jetty中)將返回一個HTTP 500. –

4

404意味着您嘗試訪問的URL不指向服務器上的現有資源。再次檢查地址,也許「網絡」(從http://localhost:8080/web/UserInterface)部分是不正確的,因爲可能應用程序沒有與該名稱部署。默認情況下,應用程序上下文名稱是從「的.war」文件的文件名derrived比如,如果你的文件是‘myApp.war’,您的應用程序應該可以在http://localhost:8080/myApp

另外,如果你在實際部署您的一個.ear文件中戰爭是EAR文件將包含的application.xml aplpication描述符可以將應用文件映射到特定的情況下,無事的.war文件名是什麼,是這樣的:

<module> 
    <web> 
     <web-uri>myApp.war</web-uri> 
     <context-root>theApp</context-root> 
    </web> 
    </module> 

最後,如果你使用JBoss Eclipse連接器從Eclipse中自動部署,有時會出現錯誤,並且事實上並沒有正確部署你的應用(儘管應用本身沒問題)。如果是這樣的話,嘗試手動將.war部署到應用程序服務器並檢查它。

+1

閱讀404消息。該URL絕對沒有錯。 – BalusC