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);
}
}
}