JBWEB000250:名称已存在的子容器

时间:2015-05-14 09:26:19

标签: tomcat ant jboss

我在JBoss中部署了耳朵,其中包含很少的战争(Web Archive)。基本上,部署的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服务主题1-5)MSC000001:无法启动服务jboss.web.deployment.default-host./:org.jboss。服务jboss.web.deployment.default-host./中的msc.service.StartException:无法启动服务       在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]       在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]       在java.lang.Thread.run(Thread.java:745)[rt.jar:1.8.0_45]

引起:java.lang.IllegalArgumentException:JBWEB000250:名称已存在的子容器

  

引起:java.lang.IllegalArgumentException:JBWEB000250:名称已存在的子容器       在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:794)       在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:785)       在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:353)       在org.jboss.as.web.deployment.WebContextInjector.inject(WebContextInjector.java:62)       在org.jboss.as.web.deployment.WebContextInjector.inject(WebContextInjector.java:38)       在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.access $ 2000(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个

这个项目是一个遗留项目。它有项目lib目录中的Struts 1.2.9,Springs-2.0.8,Hibernate-3.2.6 jar文件,以及Web Archive(.war)的\ WEB-INF \下的配置。

基本上我将应用程序从Websphere移植到JBoss

我如何解决或克服这个问题。

4 个答案:

答案 0 :(得分:10)

在standalone.xml中,这将是真的http://localhost:3000/payments/download_pdf.pdf?id1=12。如果您将其设为false,则可以在enable-welcome-root上下文....

中部署网络存档.war

如果/仍然存在,那么会出现一些默认的jboss网页。因此,需要更正此问题以在enable-welcome-root上下文中部署Web应用程序。

/

答案 1 :(得分:1)

出现此问题的原因是.ear文件中以及某些.war文件中都出现了相同的.war文件。

在我的情况下.war在一个.war \ WEB-INF \ lib下有一个与一些.war文件同名的罐子。除了移除了web文件夹之外,那些.jar已经复制了所有内容。我希望已经完成了一些java文件的引用。现在,我删除了那些.jars。现在我没有收到这个特定的错误。

所以,就目前而言,我整理了这个错误JBWEB000250: Child container with name already exists..

通过设置TOMCAT_HOME来构建ant目标没有任何害处。

但随着Web容器的变化,它可能会产生一些影响。

答案 2 :(得分:0)

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

中部署了一些/

因为这个原因,我只希望它像...一样。

  

引起:java.lang.IllegalArgumentException:JBWEB000250:名称已存在的子容器

为了克服这个错误,我删除了所有用于依赖注入的.jar服务器端类......后来我意识到.jar不是导致错误的原因。 ..我很困惑,因为这个错误也出现在一些网络环境中......也许是因为错误的快速解释可能而且我不确定....

此错误仅适用于default-host ....或者可能是因为lm-shared.jar下有.ear\META-INF\lib

如果我错了,请纠正我......如果这个错误的原因可能是其他原因,请给我一些记录....

答案 3 :(得分:-1)

要解决此问题,只需停止服务器JBOSS,导航到独立/部署中的目录服务器并删除.war项目。然后只需在服务器上再次添加项目即可完成。