diff options
author | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-03-25 17:31:00 +0000 |
---|---|---|
committer | slaws <slaws@13f79535-47bb-0310-9956-ffa450edef68> | 2010-03-25 17:31:00 +0000 |
commit | 15a47ae451a807a1094a3379422d1dec40ee7db9 (patch) | |
tree | d2636bd0b529f6608c6a0a2312a0cfb2f3054796 /sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java | |
parent | 697b28909a79f55622278b8ee2b052a397e04dfc (diff) |
Support bindings that specify WSDL or specify uris and expect WSDL to be generated. This is still based on default JAXWS impl
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@927517 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java')
-rw-r--r-- | sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java b/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java index 920b9c43fc..fd53de6a2c 100644 --- a/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java +++ b/sca-java-2.x/trunk/modules/binding-ws-runtime-jaxws/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/JAXWSBindingInvoker.java @@ -39,6 +39,7 @@ import javax.xml.ws.Dispatch; import javax.xml.ws.Service; import javax.xml.ws.WebServiceException; import javax.xml.ws.WebServiceFeature; +import javax.xml.ws.soap.SOAPBinding; import javax.xml.ws.soap.SOAPFaultException; import org.apache.tuscany.sca.binding.ws.WebServiceBinding; @@ -78,20 +79,36 @@ public class JAXWSBindingInvoker implements Invoker, DataExchangeSemantics { } private Dispatch<SOAPMessage> createDispatch(WebServiceBinding wsBinding) { - // FIXME: What should we do if the WSDL is generated in memory? URL wsdlLocation = null; try { wsdlLocation = new URL(wsBinding.getWSDLDocument().getDocumentBaseURI()); } catch (MalformedURLException e) { try { - wsdlLocation = wsBinding.getWSDLDefinition().getLocation().toURL(); + if (wsBinding.getWSDLDefinition().getLocation() != null){ + wsdlLocation = wsBinding.getWSDLDefinition().getLocation().toURL(); + } } catch (MalformedURLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } - Service service = Service.create(wsdlLocation, wsBinding.getServiceName()); - return service.createDispatch(new QName(wsBinding.getServiceName().getNamespaceURI(), wsBinding.getPortName()), + + QName serviceName = null; + QName portName = null; + Service service = null; + + if (wsdlLocation != null){ + serviceName = wsBinding.getServiceName(); + portName = new QName(serviceName.getNamespaceURI(), wsBinding.getPortName()); + service = Service.create(wsdlLocation, serviceName); + } else { + serviceName = wsBinding.getService().getQName(); + portName = new QName(serviceName.getNamespaceURI(), wsBinding.getPort().getName()); + service = Service.create(serviceName); + service.addPort(portName, SOAPBinding.SOAP11HTTP_BINDING, wsBinding.getURI()); + } + + return service.createDispatch(portName, SOAPMessage.class, Service.Mode.MESSAGE); } |