[jboss-cvs] JBossAS SVN: r109533 - in trunk: webservices/src/main/java/org/jboss/webservices/integration/invocation and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 29 06:36:53 EST 2010
Author: richard.opalka at jboss.com
Date: 2010-11-29 06:36:52 -0500 (Mon, 29 Nov 2010)
New Revision: 109533
Modified:
trunk/component-matrix/pom.xml
trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java
Log:
[JBWS-3171] fixing WebServiceContext EJB3 injection regression
Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml 2010-11-29 08:35:17 UTC (rev 109532)
+++ trunk/component-matrix/pom.xml 2010-11-29 11:36:52 UTC (rev 109533)
@@ -54,7 +54,7 @@
<version.jboss.jbossts>4.13.1.Final</version.jboss.jbossts>
<version.jboss.jbossws-native>3.4.0.CR3</version.jboss.jbossws-native>
<version.jboss.jbossws-cxf>3.4.0.CR3</version.jboss.jbossws-cxf>
- <version.jboss.jbossws-common>1.4.1.CR1</version.jboss.jbossws-common>
+ <version.jboss.jbossws-common>1.4.1.CR2</version.jboss.jbossws-common>
<version.jboss.jbossws-framework>3.4.1.CR1</version.jboss.jbossws-framework>
<version.jboss.jbossws-spi>1.4.1.CR2</version.jboss.jbossws-spi>
<version.jboss.jms-integration-tests>1.0.1.GA</version.jboss.jms-integration-tests>
Modified: trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java
===================================================================
--- trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java 2010-11-29 08:35:17 UTC (rev 109532)
+++ trunk/webservices/src/main/java/org/jboss/webservices/integration/invocation/InvocationHandlerEJB3.java 2010-11-29 11:36:52 UTC (rev 109533)
@@ -25,15 +25,18 @@
import javax.naming.Context;
import javax.naming.NamingException;
+import javax.xml.ws.WebServiceContext;
import javax.xml.ws.WebServiceException;
import org.jboss.ejb3.EJBContainer;
import org.jboss.webservices.integration.util.ASHelper;
+import org.jboss.wsf.common.injection.ThreadLocalAwareWebServiceContext;
import org.jboss.wsf.common.invocation.AbstractInvocationHandler;
import org.jboss.wsf.spi.SPIProvider;
import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationContext;
import org.jboss.wsf.spi.invocation.integration.InvocationContextCallback;
import org.jboss.wsf.spi.invocation.integration.ServiceEndpointContainer;
import org.jboss.wsf.spi.ioc.IoCContainerProxy;
@@ -117,6 +120,7 @@
try
{
// prepare for invocation
+ this.onBeforeInvocation(wsInvocation);
final ServiceEndpointContainer ejbContainer = this.getEjb3Container();
final InvocationContextCallback invocationCallback = new EJB3InvocationContextCallback(wsInvocation);
final Class<?> implClass = ejbContainer.getServiceImplementationClass();
@@ -133,6 +137,10 @@
this.log.error("Method invocation failed with exception: " + t.getMessage(), t);
this.handleInvocationException(t);
}
+ finally
+ {
+ this.onAfterInvocation(wsInvocation);
+ }
}
public Context getJNDIContext(final Endpoint ep) throws NamingException
@@ -142,6 +150,42 @@
}
/**
+ * Injects webservice context on target bean.
+ *
+ * @param invocation current invocation
+ */
+ @Override
+ protected void onBeforeInvocation(final Invocation invocation)
+ {
+ final WebServiceContext wsContext = this.getWebServiceContext(invocation);
+ ThreadLocalAwareWebServiceContext.getInstance().setMessageContext(wsContext);
+ }
+
+ /**
+ * Cleanups injected webservice context on target bean.
+ *
+ * @param invocation current invocation
+ */
+ @Override
+ protected void onAfterInvocation(final Invocation invocation)
+ {
+ ThreadLocalAwareWebServiceContext.getInstance().setMessageContext(null);
+ }
+
+ /**
+ * Returns WebServiceContext associated with this invocation.
+ *
+ * @param invocation current invocation
+ * @return web service context or null if not available
+ */
+ private WebServiceContext getWebServiceContext(final Invocation invocation)
+ {
+ final InvocationContext invocationContext = invocation.getInvocationContext();
+
+ return invocationContext.getAttachment(WebServiceContext.class);
+ }
+
+ /**
* EJB3 invocation callback allowing EJB 3 beans to access Web Service invocation properties.
*/
private static final class EJB3InvocationContextCallback implements InvocationContextCallback
More information about the jboss-cvs-commits
mailing list