我在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
我如何解决或克服这个问题。
答案 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项目。然后只需在服务器上再次添加项目即可完成。