2010-09-28 159 views
3

好吧,試圖讓部署到JBoss 4.0.4.CR2的War(不,我無法升級),並且在啓動過程中我沒有遇到任何異常,但每當我嘗試訪問應用程序I得到一個404.我檢查了每一個日誌,我沒有發現任何異常。jboss web應用程序部署但未找到

下面是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 
<servlet> 
    <servlet-name>GroupMaintenance</servlet-name> 
    <servlet-class>com.example.servlet.GroupMaintenance</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>ApplicationMaintenance</servlet-name> 
    <servlet-class>com.example.servlet.ApplicationMaintenance</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>EmailMaintenance</servlet-name> 
    <servlet-class>com.example.servlet.EmailMaintenance</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>FraudDefinitions</servlet-name> 
    <servlet-class>com.example.servlet.FraudDefinitions</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>UrlMaintenance</servlet-name> 
    <servlet-class>com.example.servlet.UrlMaintenance</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>EmailMaintenance</servlet-name> 
    <url-pattern>/email_maintenance</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>FraudDefinitions</servlet-name> 
    <url-pattern>/fraud_definitions</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>UrlMaintenance</servlet-name> 
    <url-pattern>/url_maintenance</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>GroupMaintenance</servlet-name> 
    <url-pattern>/group_maintenance</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>ApplicationMaintenance</servlet-name> 
    <url-pattern>/application_maintenance</url-pattern> 
</servlet-mapping> 

<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 

<welcome-file-list> 
    <welcome-file>/group_maintenance</welcome-file> 
</welcome-file-list> 

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>Example Form-Based Authentication Area</realm-name> 
    <form-login-config> 
     <form-login-page>/jsp/login.jsp</form-login-page> 
     <form-error-page>/jsp/error.jsp</form-error-page> 
    </form-login-config> 
</login-config> 

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected Area</web-resource-name> 
     <url-pattern>/jsp/*</url-pattern>    
     <http-method>DELETE</http-method> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
     <http-method>PUT</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>access_write</role-name> 
    </auth-constraint> 
</security-constraint>  
<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>Protected Area</web-resource-name> 
     <url-pattern>/WebAdmin</url-pattern>    
     <http-method>DELETE</http-method> 
     <http-method>GET</http-method> 
     <http-method>POST</http-method> 
     <http-method>PUT</http-method> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>access_write</role-name> 
    </auth-constraint> 
</security-constraint> 

<security-role> 
    <role-name>access_write</role-name> 
</security-role> 

<resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>ownerDS</res-ref-name>      
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 
<resource-ref> 
    <description>DB Connection</description> 
    <res-ref-name>ownerDS</res-ref-name>      
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

我一直在玩這個周圍約三小時,現在和我越來越行不通。我已經將其他Web應用程序部署到同一個實例,沒有任何問題。我認爲這很小但我沒有看到它。

更新:我註釋了登錄配置和安全約束,我可以訪問定義的servlet映射。在安全的制約因素之一,我定義了一個保護區作爲

security-constraint> 
<web-resource-collection> 
    <web-resource-name>Protected Area</web-resource-name> 
    <url-pattern>/WebAdmin</url-pattern>    
    <http-method>DELETE</http-method> 
    <http-method>GET</http-method> 
    <http-method>POST</http-method> 
    <http-method>PUT</http-method> 
</web-resource-collection> 
<auth-constraint> 
    <role-name>write</role-name> 
</auth-constraint> 

我猜的東西在這裏配置不正確。我沒有一個映射到WebAdmin的servlet,但希望安全約束適用於此WebAdmin.war中的所有servlet。

+0

沒有足夠的信息。 WAR文件的名稱是什麼?你如何試圖訪問它? – skaffman 2010-09-28 18:31:37

+0

仔細檢查戰爭是否與您使用的確切網址綁定。 – 2010-09-28 18:42:50

+0

warfile的名稱是WebAdmin.war。我試圖通過本地主機訪問它:8080/WebAdmin – Casey 2010-09-28 19:32:23

回答

0

檢查部署後是否啓動了應用程序。

我不知道這是JBoss應用服務器,但是在Weblogic中,應該在成功部署應用程序後「開始提供服務請求」。

+0

是的,根據jmx控制檯它啓動。 – Casey 2010-09-28 19:31:37

+0

你說URL是localhost:8080/WebAdmin 索引文件重定向到哪裏? 是否在您描述的servlet映射中重定向目標? – 2010-09-28 20:05:53

+0

歡迎文件列表設置爲URL模式中的/ group_maintenance。 – Casey 2010-09-29 12:54:31

0

只是一個想法...

當您啓動JBoss服務器你確定它已經開始您已經部署您的戰實例?您可能已將您的戰爭部署到錯誤的服務器實例。

我認爲在Jboss 404中啓動的默認實例是默認實例,所以請確保您將war部署爲默認值,而不是生產值。 反之亦然,如果要開始的默認實例是生產。

+0

是的戰爭文件是在正確的情況下。 – Casey 2010-09-28 20:47:34

0
  1. 你可以檢查你的戰爭的位置?
  2. 這將是很高興看到日誌
  3. 是進程運行?
  4. 你可以重新命名你的戰爭到別的東西,然後再試一次嗎?
0

您是否檢查了application.xml文件? application.xml應該給你的jar和war模塊提供參考。以下是我正在談論的一個示例:

<application> 
    <display-name>admin-ear</display-name> 
    <module> 
     <ejb>admin-core.jar</ejb> 
    </module> 
    <module> 
     <web> 
      <web-uri>admin-web.war</web-uri> 
      <context-root>/admin</context-root> 
     </web> 
    </module> 
</application> 
相關問題