JBWEB000250:同名的子容器已经存在
JBWEB000250: Child container with name already exists
我已经在 JBoss 中部署了 ear,它由几个 war(网络存档)组成。基本上,部署的 ear 文件是由 ant 通过在开始 ant 构建之前设置 TOMCAT_HOME 来构建的。
set TOMCAT_HOME=C:\apache-tomcat-6.0.32
我遇到以下错误。我将它部署在 JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21)
11:38:34,340 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: 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:1936) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_45]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45]
原因:java.lang.IllegalArgumentException:JBWEB000250:同名的子容器已经存在
Caused by: java.lang.IllegalArgumentException: JBWEB000250: Child container with name already exists
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:794)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:353)
at org.jboss.as.web.deployment.WebContextInjector.inject(WebContextInjector.java:62)
at org.jboss.as.web.deployment.WebContextInjector.inject(WebContextInjector.java:38)
at org.jboss.msc.inject.CastingInjector.inject(CastingInjector.java:55) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl.doInject(ServiceControllerImpl.java:1704) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl.access00(ServiceControllerImpl.java:52) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.performInjections(ServiceControllerImpl.java:1949) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1908) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
... 3 more
这个项目是遗留项目。它在项目 lib 目录中有 Struts 1.2.9、Springs-2.0.8、Hibernate-3.2.6 jar 文件,并且在 Web Archives (.war).
基本上我将应用程序从 Websphere 移植到 JBoss
我该如何解决或克服这个问题。
出现此问题是因为在 .ear 文件和某些 .war 文件中出现了相同的 .war 文件。
在我的例子中,.war 与一个 .war\WEB-INF\lib 下的一些 .war 文件同名的 jar 重复出现。那些 .jar 的所有内容都被复制,除了 web
文件夹被删除。我希望这样做是为了引用一些 java 文件。现在,我已经删除了那些 .jars。现在我没有收到此特定错误。
所以,现在,我解决了这个错误JBWEB000250: Child container with name already exists..
通过设置 TOMCAT_HOME 构建 ant 目标没有任何坏处。
但随着 Web 容器的变化,它可能会产生一些影响。
JBoss 不允许在 /
上下文中部署任何 .war ....我们应该提供一些 Web 上下文名称...例如 /scweb
左右.....然后就成功了....
.ear\META-INF\application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application 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/application_1_4.xsd"
version="1.4">
<display-name>PCB Application</display-name>
<module>
<web>
<web-uri>scWeb-1.1.war</web-uri>
<context-root>/scWeb</context-root>
</web>
</module>
</application>
我希望 default-host
部署在 /
出于这个原因,我希望它说的是......
Caused by: java.lang.IllegalArgumentException: JBWEB000250: Child container with name already exists
为了克服这个错误,我删除了所有用于依赖注入的 .jar
服务器端 类 .....后来我意识到 .jar
不是原因错误....我很困惑,因为这个错误也出现在某些网络上下文中...这可能是因为对错误的快速解释,我不确定....
此错误仅针对 default-host
... 或者可能是因为我在 .ear\META-INF\lib
下有一些 lm-shared.jar
如果我错了请纠正我....给我一些评论,如果这个错误的原因可能是其他原因....
在 standalone.xml 中,这将是真实的 enable-welcome-root
。如果您将其设置为 false,则可以在 /
上下文中部署网络存档 .war
....
如果 enable-welcome-root
保持为真,则出现一些默认的 jboss 网页。因此,这需要更正以在 /
上下文中部署 Web 应用程序。
<subsystem xmlns="urn:jboss:domain:web:2.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="false">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
要解决此问题,只需停止服务器 JBOSS,导航到 standalone/deployments 中的目录服务器并删除 .war 项目。然后在服务器上重新添加项目就大功告成了。
我已经在 JBoss 中部署了 ear,它由几个 war(网络存档)组成。基本上,部署的 ear 文件是由 ant 通过在开始 ant 构建之前设置 TOMCAT_HOME 来构建的。
set TOMCAT_HOME=C:\apache-tomcat-6.0.32
我遇到以下错误。我将它部署在 JBoss EAP 6.4.0.GA (AS 7.5.0.Final-redhat-21)
11:38:34,340 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC000001: 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:1936) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_45] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_45]
原因:java.lang.IllegalArgumentException:JBWEB000250:同名的子容器已经存在
Caused by: java.lang.IllegalArgumentException: JBWEB000250: Child container with name already exists at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:794) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:353) at org.jboss.as.web.deployment.WebContextInjector.inject(WebContextInjector.java:62) at org.jboss.as.web.deployment.WebContextInjector.inject(WebContextInjector.java:38) at org.jboss.msc.inject.CastingInjector.inject(CastingInjector.java:55) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl.doInject(ServiceControllerImpl.java:1704) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl.access00(ServiceControllerImpl.java:52) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.performInjections(ServiceControllerImpl.java:1949) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1908) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1] ... 3 more
这个项目是遗留项目。它在项目 lib 目录中有 Struts 1.2.9、Springs-2.0.8、Hibernate-3.2.6 jar 文件,并且在 Web Archives (.war).
基本上我将应用程序从 Websphere 移植到 JBoss
我该如何解决或克服这个问题。
出现此问题是因为在 .ear 文件和某些 .war 文件中出现了相同的 .war 文件。
在我的例子中,.war 与一个 .war\WEB-INF\lib 下的一些 .war 文件同名的 jar 重复出现。那些 .jar 的所有内容都被复制,除了 web
文件夹被删除。我希望这样做是为了引用一些 java 文件。现在,我已经删除了那些 .jars。现在我没有收到此特定错误。
所以,现在,我解决了这个错误JBWEB000250: Child container with name already exists..
通过设置 TOMCAT_HOME 构建 ant 目标没有任何坏处。
但随着 Web 容器的变化,它可能会产生一些影响。
JBoss 不允许在 /
上下文中部署任何 .war ....我们应该提供一些 Web 上下文名称...例如 /scweb
左右.....然后就成功了....
.ear\META-INF\application.xml
<?xml version="1.0" encoding="UTF-8"?>
<application 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/application_1_4.xsd"
version="1.4">
<display-name>PCB Application</display-name>
<module>
<web>
<web-uri>scWeb-1.1.war</web-uri>
<context-root>/scWeb</context-root>
</web>
</module>
</application>
我希望 default-host
部署在 /
出于这个原因,我希望它说的是......
Caused by: java.lang.IllegalArgumentException: JBWEB000250: Child container with name already exists
为了克服这个错误,我删除了所有用于依赖注入的 .jar
服务器端 类 .....后来我意识到 .jar
不是原因错误....我很困惑,因为这个错误也出现在某些网络上下文中...这可能是因为对错误的快速解释,我不确定....
此错误仅针对 default-host
... 或者可能是因为我在 .ear\META-INF\lib
lm-shared.jar
如果我错了请纠正我....给我一些评论,如果这个错误的原因可能是其他原因....
在 standalone.xml 中,这将是真实的 enable-welcome-root
。如果您将其设置为 false,则可以在 /
上下文中部署网络存档 .war
....
如果 enable-welcome-root
保持为真,则出现一些默认的 jboss 网页。因此,这需要更正以在 /
上下文中部署 Web 应用程序。
<subsystem xmlns="urn:jboss:domain:web:2.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<virtual-server name="default-host" enable-welcome-root="false">
<alias name="localhost"/>
<alias name="example.com"/>
</virtual-server>
</subsystem>
要解决此问题,只需停止服务器 JBOSS,导航到 standalone/deployments 中的目录服务器并删除 .war 项目。然后在服务器上重新添加项目就大功告成了。