Attempting to deploy a duplicate context removes existing servlet bindings
--------------------------------------------------------------------------
Key: JBAS-5671
URL:
http://jira.jboss.com/jira/browse/JBAS-5671
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Web (Tomcat) service
Reporter: Adrian Brock
Assigned To: Remy Maucherat
In jboss by default there is a root Tomcat context supplied by deploy/ROOT.war
This jsp page can be accessed using
http://localhost:8080
If you attempt to deploy another war in the same context it correctly gives an error
message
11:53:40,865 INFO [TomcatDeployment] deploy, ctxPath=/, vfsUrl=
11:53:40,889 ERROR [BaseModelMBean] Exception invoking method addChild
java.lang.IllegalArgumentException: addChild: Child name '' is not unique
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:780)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
at org.apache.catalina.core.StandardContext.init(StandardContext.java:5384)
at
org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:344)
at
org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:139)
at
org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:431)
at org.jboss.web.deployers.WebModule.startModule(WebModule.java:112)
at org.jboss.web.deployers.WebModule.start(WebModule.java:90)
But it also removes the servlet bindings for the ROOT.war,
To reproduce:
1) Start jboss
2) Access
http://localhost:8080 - gives a jsp page
3) In the testsuite, run ./build.sh one-test
-Dtest=org.jboss.test.web.test.RootContextUnitTestCase
4) Refresh the page (make sure to flush the web browser cache)
If you look at Tomcat's JSR77 mbeans before and after, you'll see that the web
module for localhost/ still exists,
but the servlet bindings have disappeared.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira