You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/10/18 10:20:40 UTC
svn commit: r1399549 -
/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
Author: rmannibucau
Date: Thu Oct 18 08:20:39 2012
New Revision: 1399549
URL: http://svn.apache.org/viewvc?rev=1399549&view=rev
Log:
TOMEE-480 deploy SOAP webservices using the classloader of the app/webapp containing it
Modified:
openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
Modified: openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1399549&r1=1399548&r2=1399549&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java (original)
+++ openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java Thu Oct 18 08:20:39 2012
@@ -247,6 +247,8 @@ public abstract class WsService implemen
PortInfo portInfo = ports.get(bean.ejbName);
if (portInfo == null) continue;
+ final ClassLoader old = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(beanContext.getClassLoader());
try {
PortData port = WsBuilder.toPortData(portInfo, beanContext.getInjections(), moduleBaseUrl, beanContext.getClassLoader());
@@ -291,6 +293,8 @@ public abstract class WsService implemen
}
} catch (Throwable e) {
logger.error("Error deploying JAX-WS Web Service for EJB " + beanContext.getDeploymentID(), e);
+ } finally {
+ Thread.currentThread().setContextClassLoader(old);
}
}
}
@@ -339,8 +343,10 @@ public abstract class WsService implemen
continue;
}
+ final ClassLoader old = Thread.currentThread().getContextClassLoader();
+ final ClassLoader classLoader = webContext.getClassLoader();
+ Thread.currentThread().setContextClassLoader(classLoader);
try {
- ClassLoader classLoader = webContext.getClassLoader();
Collection<Injection> injections = webContext.getInjections();
Context context = webContext.getJndiEnc();
Class target = classLoader.loadClass(servlet.servletClass);
@@ -369,6 +375,8 @@ public abstract class WsService implemen
}
} catch (Throwable e) {
logger.error("Error deploying CXF webservice for servlet " + portInfo.serviceLink, e);
+ } finally {
+ Thread.currentThread().setContextClassLoader(old);
}
}
}