[英]jboss web application deploying but not found
好的,尝试将 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。
你检查你的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>
检查您是否在部署后启动了应用程序。
我不知道 JBoss 应用服务器到底是怎么回事,但在 Weblogic 中,应用程序部署成功后应该“开始服务请求”。
只是一个念头...
当您启动 jboss 服务器时,您确定它正在启动您部署战争的实例吗? 您可能已将战争部署到错误的服务器实例。
我认为在 Jboss 404 中启动的默认实例是默认的,因此请确保您将战争部署为默认而不是生产。 反之亦然,如果要启动的默认实例是生产。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.