summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java')
-rw-r--r--sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java b/sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java
index 2aa2cc5db2..94cd1d621d 100644
--- a/sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java
+++ b/sca-java-2.x/contrib/modules/binding-ws-runtime-jaxws-axis2/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/axis2/JAXWSServiceBindingProvider.java
@@ -20,6 +20,7 @@ package org.apache.tuscany.sca.binding.ws.jaxws.axis2;
import java.net.URI;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.List;
import javax.wsdl.Port;
@@ -28,7 +29,10 @@ import javax.xml.ws.Endpoint;
import org.apache.axiom.om.OMElement;
import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.description.AxisOperation;
import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.WSDL2Constants;
+import org.apache.axis2.engine.MessageReceiver;
import org.apache.axis2.jaxws.binding.BindingUtils;
import org.apache.axis2.jaxws.description.DescriptionFactory;
import org.apache.axis2.jaxws.description.EndpointDescription;
@@ -37,6 +41,7 @@ import org.apache.axis2.jaxws.description.builder.DescriptionBuilderComposite;
import org.apache.axis2.jaxws.description.builder.WebServiceProviderAnnot;
import org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter;
import org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl;
+import org.apache.axis2.jaxws.server.JAXWSMessageReceiver;
import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
import org.apache.tuscany.sca.core.ExtensionPointRegistry;
import org.apache.tuscany.sca.core.FactoryExtensionPoint;
@@ -45,6 +50,7 @@ import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint;
import org.apache.tuscany.sca.host.http.SecurityContext;
import org.apache.tuscany.sca.host.http.ServletHost;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
+import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.MessageFactory;
import org.apache.tuscany.sca.provider.ServiceBindingProvider;
import org.apache.tuscany.sca.runtime.RuntimeComponent;
@@ -96,7 +102,7 @@ public class JAXWSServiceBindingProvider implements ServiceBindingProvider {
contract.getInterface().resetDataBinding(OMElement.class.getName());
// A WSDL document should always be present in the binding
- if (wsBinding.getWSDLDocument() == null) {
+ if (wsBinding.getGeneratedWSDLDocument() == null) {
throw new ServiceRuntimeException("No WSDL document for " + component.getName() + "/" + service.getName());
}
@@ -175,11 +181,13 @@ public class JAXWSServiceBindingProvider implements ServiceBindingProvider {
webServiceProviderAnnot.setTargetNamespace(targetNamespace);
webServiceProviderAnnot.setServiceName(wsBinding.getService().getQName().getLocalPart());
webServiceProviderAnnot.setPortName(wsBinding.getPort().getName());
+ webServiceProviderAnnot.setWsdlLocation("D:/sca-java-2.x-contrib/modules/binding-ws-runtime-jaxws-axis2/src/test/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdlport/helloworld.wsdl");
// adjust the service description to match the service we're actually exposing
DescriptionBuilderComposite dbc = dbcMap.values().iterator().next();
dbc.setWebServiceProviderAnnot(webServiceProviderAnnot);
- dbc.setWsdlDefinition(wsBinding.getService().getQName(), wsBinding.getWSDLDefinition().getDefinition());
+ //dbc.setWsdlDefinition(wsBinding.getService().getQName(), wsBinding.getWSDLDefinition().getDefinition());
+
List<ServiceDescription> serviceDescList = DescriptionFactoryImpl.createServiceDescriptionFromDBCMap(dbcMap, configContext);
ServiceDescription sd = null;
if (serviceDescList != null && serviceDescList.size() > 0) {
@@ -196,6 +204,12 @@ public class JAXWSServiceBindingProvider implements ServiceBindingProvider {
axisService.setName(path);
axisService.setServiceDescription("Tuscany configured AxisService for service: " + deployedURI);
axisService.setClientSide(false);
+
+ for (Iterator<?> i = axisService.getOperations(); i.hasNext();) {
+ AxisOperation axisOp = (AxisOperation)i.next();
+ axisOp.setMessageReceiver(new JAXWSMessageReceiver());
+ }
+
configContext.getAxisConfiguration().addService(axisService);
// fire up the Axis servlet