java - jboss Web应用程序正在部署但未找到

标签 java web-applications jboss

好吧,尝试将 War 部署到 JBoss 4.0.4.CR2(不,我无法升级),并且在启动过程中没有遇到任何异常,但每当我尝试访问应用程序时,都会收到 404。我已经检查了每条日志,没有发现任何异常。

下面是我的 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。

最佳答案

检查部署后是否启动了应用程序。

我不知道 JBoss 应用程序服务器到底是怎么回事,但在 Weblogic 中,在成功部署应用程序后应该“开始服务请求”。

关于java - jboss Web应用程序正在部署但未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3815904/

相关文章:

java - 有没有办法确定是否可以在没有空 try-catch block 的情况下调用 dialog.dismiss()?

java - 在 JNI 中将 JString 转换为 String 时的 UTF 8 特殊字符

visual-studio - 如何在 Visual Studio IDE 中将 Web 应用程序项目自动打包 (MSDeploy) 作为项目构建的一部分?

web-applications - 这些天使用的 CGI 脚本是什么?

java - 使用远程处理对象的服务 jboss 出现问题

java - LibGdx 使用 ArrayList 进行数据持久化

java - HTTP 状态 405 - 此 URL 不支持 HTTP 方法 POST

java - 无法启动服务 jboss.deployment.unit - StartException

java - 启动后在JBoss上执行代码

java - 由于部署目录无法访问,Keycloak 启动时扫描失败 :/opt/jboss/keycloak/standalone/deployments