Deploying the same ejb in two different webapps causes a
DuplicateDeploymentIdException
---------------------------------------------------------------------------------------
Key: OPENEJB-873
URL: https://issues.apache.org/jira/browse/OPENEJB-873
Project: OpenEJB
Issue Type: Bug
Components: tomcat
Affects Versions: 3.0.1
Reporter: karan singh malhi
Assignee: karan singh malhi
I deployed two ejb's i.e. Calculator and Greeting in a webapp named dummy (i.e.
context root was dummy). Then I copied the webapp dummy and pasted it under
tomcat/webapps but renamed the context root to myfaces. This way I had two
exact same webapps, but there were two different context roots. When I start
tomcat and open the <<tomcat-install>>/conf/openejb.log, the log shows me a
DuplicateDeploymentIdException for one of the webapps (the one which started
later). This is because a deploymentId was already assigned to the earlier
webapp. So I decided to change the default deploymentId of a module by adding
the following in <<Tomcat-install>>/conf/system.properties file
openejb.deploymentId.format={moduleId}/{ejbName}
When I restarted tomcat, i still got the same exception. The reason is that the
moduleId of every web module which contains EJB's is named as "classes". Here
is the exception:
2008-07-27 18:48:22,692 - INFO - Configuring enterprise application:
/home/karan/install/apache-tomcat-6.0.16/webapps/dummy
2008-07-27 18:48:22,692 - DEBUG - No ejb-jar.xml found assuming annotated beans
present: /home/karan/install/apache-tomcat-6.0.16/webapps/dummy, module: classes
2008-07-27 18:48:22,701 - INFO - Enterprise application
"/home/karan/install/apache-tomcat-6.0.16/webapps/dummy" loaded.
2008-07-27 18:48:22,702 - INFO - Assembling app:
/home/karan/install/apache-tomcat-6.0.16/webapps/dummy
2008-07-27 18:48:22,728 - DEBUG - Using openejb.jndiname.strategy.class
'org.apache.openejb.assembler.classic.JndiBuilder$TemplatedStrategy'
2008-07-27 18:48:22,729 - DEBUG - Using openejb.jndiname.format
'{deploymentId}{interfaceType.annotationName}'
2008-07-27 18:48:22,731 - INFO - Jndi(name=GreeterImplLocal) -->
Ejb(deployment-id=GreeterImpl)
2008-07-27 18:48:22,732 - INFO - Jndi(name=MathCalculatorLocal) -->
Ejb(deployment-id=MathCalculator)
2008-07-27 18:48:22,732 - INFO - Created Ejb(deployment-id=GreeterImpl,
ejb-name=GreeterImpl, container=My Stateless Container)
2008-07-27 18:48:22,732 - INFO - Created Ejb(deployment-id=MathCalculator,
ejb-name=MathCalculator, container=My Stateless Container)
2008-07-27 18:48:22,732 - INFO - Deployed
Application(path=/home/karan/install/apache-tomcat-6.0.16/webapps/dummy)
2008-07-27 18:48:22,732 - DEBUG - App Created Event: CxfService:
/home/karan/install/apache-tomcat-6.0.16/webapps/dummy
2008-07-27 18:48:25,740 - INFO - Configuring enterprise application:
/home/karan/install/apache-tomcat-6.0.16/webapps/myfaces
2008-07-27 18:48:25,740 - DEBUG - No ejb-jar.xml found assuming annotated beans
present: /home/karan/install/apache-tomcat-6.0.16/webapps/myfaces, module:
classes
2008-07-27 18:48:25,746 - INFO - Enterprise application
"/home/karan/install/apache-tomcat-6.0.16/webapps/myfaces" loaded.
2008-07-27 18:48:25,746 - INFO - Assembling app:
/home/karan/install/apache-tomcat-6.0.16/webapps/myfaces
2008-07-27 18:48:25,746 - ERROR - Application cannot be deployed as it contains
deployment-ids which are in use: app:
/home/karan/install/apache-tomcat-6.0.16/webapps/myfaces
2008-07-27 18:48:25,746 - DEBUG - DeploymentId already used: GreeterImpl
2008-07-27 18:48:25,746 - DEBUG - DeploymentId already used: MathCalculator
2008-07-27 18:48:25,747 - ERROR - Unable to deploy collapsed ear in war
/myfaces: Exception: Application cannot be deployed as it contains
deployment-ids which are in use: app:
/home/karan/install/apache-tomcat-6.0.16/webapps/myfaces
GreeterImpl
MathCalculator
org.apache.openejb.DuplicateDeploymentIdException: Application cannot be
deployed as it contains deployment-ids which are in use: app:
/home/karan/install/apache-tomcat-6.0.16/webapps/myfaces
GreeterImpl
MathCalculator
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:444)
at
org.apache.openejb.tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java:241)
at
org.apache.openejb.tomcat.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:58)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at
org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
at
org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
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.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.