JBOSS EAP 6.4 中的上下文根自动更改为临时文件夹名称
Context root automatically changing to temp folder name in JBOSS EAP 6.4
我有一个正在尝试部署到 JBoss EAP 6.4 的应用程序。部署应用程序时我没有看到任何错误。但是,当我尝试使用 http://localhost:8080/contextroot/
等上下文根访问应用程序时,我被重定向到 http://localhost:8080/contextroot.war-345rdser34dwwe/login.jsp
,其中 contextroot.war-345rdser34dwwe
是在 ${jboss.home}/standalone/tmp/vfs/temp
下创建的文件夹
这是我的jboss-部署-structure.xml
<jboss-deployment-structure> <!-- Make sub deployments isolated by default, so they cannot see each others
classes without a Class-Path entry -->
<ear-subdeployments-isolated>false</ear-subdeployments-isolated> <!-- This corresponds to the top level deployment. For a war this is the
war's module, for an ear --> <!-- This is the top level ear module, which contains all the classes in
the EAR's lib folder -->
<deployment>
<resources>
<resource-root path="WEB-INF/lib/bcprov-jdk16-1.46.jar" use-physical-code-source="true"/>
</resources>
<!-- exclude-subsystem prevents a subsystems deployment unit processors running
on a deployment --> <!-- which gives basically the same effect as removing the subsystem, but
it only affects single deployment -->
<exclusions>
<module name="org.javassist" />
<module name="org.hibernate" />
<module name="org.hibernate.validator" />
<module name="org.jboss.msc" />
<module name="javax.faces.api" />
<module name="com.sun.jsf-impl" />
<module name="org.apache.log4j" />
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
<module name="org.apache.commons.logging" />
<module name="org.jboss.resteasy.resteasy-hibernatevalidator-provider" />
</exclusions>
<!-- This allows you to define additional dependencies, it is the same as
using the Dependencies: manifest attribute -->
<dependencies>
<module name="com.company.app.config" optional="TRUE"/>
<module name="deployment.module.nested.app"/>
</dependencies>
</deployment>
<module name="deployment.module.nested.app">
<resources>
<resource-root path="../contextroot.war"/>
</resources>
</module>
这是我的jboss-web.xml
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
<jboss-web>
<security-domain>UserModule</security-domain>
<security-domain>ServiceModule</security-domain>
</jboss-web>
这是我的独立配置-ha.xml 安全子系统
<security-domain name="UserModule" cache-type="default">
<authentication>
<login-module code="com.company.uas.service.authentication.loginmodule.UserLoginModule" flag="required"/>
</authentication>
</security-domain>
<security-domain name="ServiceModule" cache-type="default">
<authentication>
<login-module code="com.company.uas.service.authentication.loginmodule.ServiceLoginModule" flag="required"/>
</authentication>
</security-domain>
我已经研究了几天,但在网上找不到与此问题相关的任何信息。
我不确定我是否认为这是一个答案,但我明白为什么我的 /contextroot
变成了 /contextroot.war-345rdser34dwwe
。这是因为,我正在将 war 文件部署到 JBoss,并且 JBoss 指向我的 war 文件的分解版本,该文件存在于 tmp
出于某种原因的文件夹。
我部署了 war 文件的分解版本,并将名称 contextroot.war
作为文件夹的名称,并且成功了。
我有一个正在尝试部署到 JBoss EAP 6.4 的应用程序。部署应用程序时我没有看到任何错误。但是,当我尝试使用 http://localhost:8080/contextroot/
等上下文根访问应用程序时,我被重定向到 http://localhost:8080/contextroot.war-345rdser34dwwe/login.jsp
,其中 contextroot.war-345rdser34dwwe
是在 ${jboss.home}/standalone/tmp/vfs/temp
这是我的jboss-部署-structure.xml
<jboss-deployment-structure> <!-- Make sub deployments isolated by default, so they cannot see each others
classes without a Class-Path entry -->
<ear-subdeployments-isolated>false</ear-subdeployments-isolated> <!-- This corresponds to the top level deployment. For a war this is the
war's module, for an ear --> <!-- This is the top level ear module, which contains all the classes in
the EAR's lib folder -->
<deployment>
<resources>
<resource-root path="WEB-INF/lib/bcprov-jdk16-1.46.jar" use-physical-code-source="true"/>
</resources>
<!-- exclude-subsystem prevents a subsystems deployment unit processors running
on a deployment --> <!-- which gives basically the same effect as removing the subsystem, but
it only affects single deployment -->
<exclusions>
<module name="org.javassist" />
<module name="org.hibernate" />
<module name="org.hibernate.validator" />
<module name="org.jboss.msc" />
<module name="javax.faces.api" />
<module name="com.sun.jsf-impl" />
<module name="org.apache.log4j" />
<module name="org.slf4j" />
<module name="org.slf4j.impl" />
<module name="org.apache.commons.logging" />
<module name="org.jboss.resteasy.resteasy-hibernatevalidator-provider" />
</exclusions>
<!-- This allows you to define additional dependencies, it is the same as
using the Dependencies: manifest attribute -->
<dependencies>
<module name="com.company.app.config" optional="TRUE"/>
<module name="deployment.module.nested.app"/>
</dependencies>
</deployment>
<module name="deployment.module.nested.app">
<resources>
<resource-root path="../contextroot.war"/>
</resources>
</module>
这是我的jboss-web.xml
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
<jboss-web>
<security-domain>UserModule</security-domain>
<security-domain>ServiceModule</security-domain>
</jboss-web>
这是我的独立配置-ha.xml 安全子系统
<security-domain name="UserModule" cache-type="default">
<authentication>
<login-module code="com.company.uas.service.authentication.loginmodule.UserLoginModule" flag="required"/>
</authentication>
</security-domain>
<security-domain name="ServiceModule" cache-type="default">
<authentication>
<login-module code="com.company.uas.service.authentication.loginmodule.ServiceLoginModule" flag="required"/>
</authentication>
</security-domain>
我已经研究了几天,但在网上找不到与此问题相关的任何信息。
我不确定我是否认为这是一个答案,但我明白为什么我的 /contextroot
变成了 /contextroot.war-345rdser34dwwe
。这是因为,我正在将 war 文件部署到 JBoss,并且 JBoss 指向我的 war 文件的分解版本,该文件存在于 tmp
出于某种原因的文件夹。
我部署了 war 文件的分解版本,并将名称 contextroot.war
作为文件夹的名称,并且成功了。