summaryrefslogtreecommitdiffstats
path: root/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint
diff options
context:
space:
mode:
authordims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
committerdims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
commitbdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch)
tree38a92061c0793434c4be189f1d70c3458b6bc41d /branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint')
-rw-r--r--branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java101
-rw-r--r--branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java113
2 files changed, 214 insertions, 0 deletions
diff --git a/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java b/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java
new file mode 100644
index 0000000000..bb9f0e307a
--- /dev/null
+++ b/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointInOutSyncMessageReceiver.java
@@ -0,0 +1,101 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.binding.axis2.entrypoint;
+
+import java.lang.reflect.Method;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.Constants;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver;
+import org.apache.tuscany.binding.axis2.util.SDODataBinding;
+import org.apache.tuscany.core.wire.InvocationRuntimeException;
+
+public class WebServiceEntryPointInOutSyncMessageReceiver extends AbstractInOutSyncMessageReceiver {
+
+ private Object entryPointProxy;
+
+ protected Method operationMethod;
+
+ protected SDODataBinding dataBinding;
+
+ protected ClassLoader classLoader;
+
+ public WebServiceEntryPointInOutSyncMessageReceiver(Object entryPointProxy, Method operationMethod, SDODataBinding dataBinding, ClassLoader classLoader) {
+ this.entryPointProxy = entryPointProxy;
+ this.operationMethod = operationMethod;
+ this.dataBinding = dataBinding;
+ this.classLoader = classLoader;
+ }
+
+ @Override
+ public void invokeBusinessLogic(MessageContext inMC, MessageContext outMC) throws AxisFault {
+ try {
+
+ OMElement requestOM = inMC.getEnvelope().getBody().getFirstElement();
+ Object[] request;
+ if (requestOM != null) {
+ request = dataBinding.fromOMElement(requestOM);
+ } else {
+ request = new Object[0];
+ }
+
+ Object response;
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ try {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+
+ response = operationMethod.invoke(entryPointProxy, request);
+
+ } finally {
+ if (tccl != classLoader) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+
+ SOAPEnvelope soapEnvelope = getSOAPFactory(inMC).getDefaultEnvelope();
+
+ OMElement responseOM = null;
+ if (response != null) {
+ responseOM = dataBinding.toOMElement(new Object[] { response });
+ soapEnvelope.getBody().addChild(responseOM);
+ }
+
+ outMC.setEnvelope(soapEnvelope);
+ outMC.getOperationContext().setProperty(Constants.RESPONSE_WRITTEN, Constants.VALUE_TRUE);
+
+ } catch (InvocationRuntimeException e) {
+ // throw new InvocationRuntimeException(e);
+ Throwable t = e.getCause();
+ if(t instanceof Exception) {
+
+ throw AxisFault.makeFault((Exception)t);
+
+ }
+ throw e;
+
+
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+
+ }
+}
diff --git a/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java b/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java
new file mode 100644
index 0000000000..4e6173b671
--- /dev/null
+++ b/branches/java-post-M1/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/entrypoint/WebServiceEntryPointServlet.java
@@ -0,0 +1,113 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.tuscany.binding.axis2.entrypoint;
+
+import java.io.IOException;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.transport.http.AxisServlet;
+
+/**
+ * @version $Rev: 383148 $ $Date: 2006-03-04 08:07:17 -0800 (Sat, 04 Mar 2006) $
+ */
+public class WebServiceEntryPointServlet extends AxisServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ private AxisService axisService;
+
+ public WebServiceEntryPointServlet(AxisService axisService) {
+ this.axisService = axisService;
+ }
+
+ public void init(final ServletConfig config) throws ServletException {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
+ try {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
+
+ try {
+
+ super.init(config);
+
+ configContext.getAxisConfiguration().addService(axisService);
+
+ } catch (Exception e) {
+ throw new ServletException(e);
+ }
+
+ } finally {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+
+ @Override
+ protected void doGet(final HttpServletRequest arg0, final HttpServletResponse arg1) throws ServletException, IOException {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
+ try {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
+
+ try {
+ super.doGet(arg0, arg1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ServletException(e);
+ }
+
+ } finally {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+
+ @Override
+ protected void doPost(final HttpServletRequest arg0, final HttpServletResponse arg1) throws ServletException, IOException {
+ ClassLoader tccl = Thread.currentThread().getContextClassLoader();
+ ClassLoader scl = this.getClass().getClassLoader();
+ try {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(scl);
+ }
+
+ try {
+ super.doPost(arg0, arg1);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new ServletException(e);
+ }
+
+ } finally {
+ if (tccl != scl) {
+ Thread.currentThread().setContextClassLoader(tccl);
+ }
+ }
+ }
+}