我想将上下文根目录从“/ war_name”(默认情况下)更改为“/".
因此,我创建了一个jboss-web.xml文件,我将其推入WEB-INF目录。
此文件的内容为:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/</context-root>
</jboss-web>
不幸的是,这会在战争部署期间导致以下错误:
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.web.deployment.default-host./: org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [:1.7.0_01]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [:1.7.0_01]
at java.lang.Thread.run(Thread.java:722) [:1.7.0_01]
Caused by: java.lang.IllegalArgumentException: Child container with name already exists
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:804)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:792)
但是,当我把一些目录名称放在:/ RoomManagement时,我没有这个问题。 但是如果我使用这个,我就无法访问不在/ RoomManagement中的JSP。
您是否知道将context-root配置为“/”?
答案 0 :(得分:59)
看起来还有另一个应用程序在根上下文中运行“/".
在将应用分配到根上下文之前,您可能必须删除其他应用或将其移至其他应用。
如果冲突的应用程序是JBoss AppServer root本身,您可以使用以下命令禁用它( enable-welcome-root =“false”)
<subsystem xmlns="urn:jboss:domain:web:1.0">
<connector name="http" protocol="HTTP/1.1" socket-binding="http" scheme="http"/>
<virtual-server name="localhost" enable-welcome-root="false">
<alias name="example.com"/>
</virtual-server>
</subsystem>