You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by km...@apache.org on 2008/07/28 01:33:33 UTC
svn commit: r680207 -
/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
Author: kmalhi
Date: Sun Jul 27 16:33:33 2008
New Revision: 680207
URL: http://svn.apache.org/viewvc?rev=680207&view=rev
Log:
OPENEJB-873 Deploying the same ejb in two different webapps causes a DuplicateDeploymentIdException
FIXED this issue
How it was fixed:-
The moduleId of an EJB module was earlier set to "classes". Changed it to now set the moduleId of
the EJB to have the same name as the context root of the webapp in which the EJB is installed
Modified:
openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
Modified: openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java?rev=680207&r1=680206&r2=680207&view=diff
==============================================================================
--- openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb3/assembly/openejb-tomcat/openejb-tomcat-catalina/src/main/java/org/apache/openejb/tomcat/catalina/TomcatWebAppBuilder.java Sun Jul 27 16:33:33 2008
@@ -552,8 +552,9 @@
logger.info("Found ejb module " + moduleType.getSimpleName() + " in war " + standardContext.getPath());
- // creat the module
- EjbModule ejbModule = new EjbModule(webModule.getClassLoader(), file.getAbsolutePath(), null, null);
+
+ // create the ejb module and set its moduleId to the webapp context root name
+ EjbModule ejbModule = new EjbModule(webModule.getClassLoader(), getEjbModuleId(standardContext),file.getAbsolutePath(), null, null);
// EJB deployment descriptors
try {
@@ -585,7 +586,17 @@
return appModule;
}
-
+ /**
+ * Strips off the / from the context root and returns the remaining String
+ * @param standardContext
+ * @return the name of the context root for the webapp
+ */
+ private String getEjbModuleId(StandardContext standardContext) {
+ String ejbModuleId = standardContext.getName();
+ if(ejbModuleId.startsWith("/"))
+ ejbModuleId = ejbModuleId.substring(1);
+ return ejbModuleId;
+ }
private WebModule createWebModule(StandardContext standardContext) {
// todo replace this code with DeploymentLoader
ServletContext servletContext = standardContext.getServletContext();