You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/07/22 06:27:32 UTC
svn commit: r558461 - in /incubator/tuscany/java/sca:
modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/
modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/
modules/core/src/main/java/org/apache/tuscany/sca/core...
Author: rfeng
Date: Sat Jul 21 21:27:27 2007
New Revision: 558461
URL: http://svn.apache.org/viewvc?view=rev&rev=558461
Log:
Apply the 2nd patch from Simon Nash for TUSCANY-1469
Modified:
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java
incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java
incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java
incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite
incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2BindingInvoker.java Sat Jul 21 21:27:27 2007
@@ -36,6 +36,7 @@
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
import org.apache.tuscany.sca.interfacedef.ConversationSequence;
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
@@ -78,7 +79,8 @@
return msg;
}
- protected Object invokeTarget(final Object payload, final ConversationSequence sequence, String conversationId) throws InvocationTargetException {
+ protected Object invokeTarget(final Object payload, final ConversationSequence sequence, String conversationId)
+ throws InvocationTargetException {
try {
Object[] args = (Object[]) payload;
@@ -138,6 +140,25 @@
}
operationClient.setOptions(options);
+ if (options.getTo() == null) {
+ org.apache.tuscany.sca.runtime.EndpointReference ep = ThreadMessageContext.getMessageContext().getTo();
+ if (ep != null) {
+ System.out.println("Axis2BindingInvoker: dynamic endpoint URI is " + ep.getURI());
+ requestMC.setTo(new EndpointReference(ep.getURI()));
+ } else {
+ throw new RuntimeException("Unable to determine destination endpoint");
+ }
+ }
+ if (options.getFrom() != null) {
+ requestMC.setFrom(options.getFrom());
+ //FIXME: is there any way to use the Axis2 addressing support for this?
+ SOAPEnvelope sev = requestMC.getEnvelope();
+ SOAPHeader sh = sev.getHeader();
+ OMElement el = options.getFrom().toOM(AddressingConstants.Final.WSA_NAMESPACE,
+ AddressingConstants.WSA_FROM,
+ AddressingConstants.WSA_DEFAULT_PREFIX);
+ sh.addChild(el);
+ }
operationClient.addMessageContext(requestMC);
return operationClient;
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2OneWayBindingInvoker.java Sat Jul 21 21:27:27 2007
@@ -27,6 +27,10 @@
import org.apache.axis2.client.OperationClient;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.tuscany.sca.interfacedef.ConversationSequence;
public class Axis2OneWayBindingInvoker extends Axis2BindingInvoker {
@@ -38,11 +42,17 @@
super(serviceClient, wsdlOperationName, options, soapFactory);
}
- protected Object invokeTarget(final Object payload, final short sequence, String conversationId) throws InvocationTargetException {
+ protected Object invokeTarget(final Object payload, final ConversationSequence sequence, String conversationId)
+ throws InvocationTargetException {
try {
Object[] args = (Object[]) payload;
OperationClient operationClient = createOperationClient(args, conversationId);
+
+ // ensure connections are tracked so that they can be closed by the reference binding
+ MessageContext requestMC = operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
+ requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE);
+
operationClient.execute(false);
// REVIEW it seems ok to return null
@@ -50,8 +60,6 @@
} catch (AxisFault e) {
throw new InvocationTargetException(e);
- } catch (Throwable t) {
- throw new InvocationTargetException(t);
}
}
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ReferenceBindingProvider.java Sat Jul 21 21:27:27 2007
@@ -136,8 +136,14 @@
axisClient = new Axis2ServiceClient(component, reference, wsBinding, servletHost,
messageFactory, callbackBinding);
} else {
- axisProvider = new Axis2ServiceProvider(component, reference, wsBinding, servletHost,
- messageFactory);
+ //FIXME: need to support callbacks through self-references
+ // For now, don't create a callback service provider for a self-reference
+ // because this modifies the binding URI. This messes up the service callback
+ // wires because the self-reference has the same binding object as the service.
+ if (!reference.getName().startsWith("$self$.")) {
+ axisProvider = new Axis2ServiceProvider(component, reference, wsBinding, servletHost,
+ messageFactory);
+ }
}
}
}
@@ -186,7 +192,10 @@
if (!wsBinding.isCallback()) {
axisClient.start();
} else {
- axisProvider.start();
+ //FIXME: need to support callbacks through self-references
+ if (!reference.getName().startsWith("$self$.")) {
+ axisProvider.start();
+ }
}
}
}
@@ -200,7 +209,10 @@
if (!wsBinding.isCallback()) {
axisClient.stop();
} else {
- axisProvider.stop();
+ //FIXME: need to support callbacks through self-references
+ if (!reference.getName().startsWith("$self$.")) {
+ axisProvider.stop();
+ }
}
}
}
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceClient.java Sat Jul 21 21:27:27 2007
@@ -40,7 +40,6 @@
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.tuscany.sca.assembly.AbstractContract;
import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
-import org.apache.tuscany.sca.core.invocation.ThreadMessageContext;
import org.apache.tuscany.sca.http.ServletHost;
import org.apache.tuscany.sca.interfacedef.Operation;
import org.apache.tuscany.sca.invocation.Invoker;
@@ -109,18 +108,11 @@
* Create and configure an Axis2BindingInvoker for each operation
*/
protected Invoker createInvoker(Operation operation) {
+ Options options = new Options();
EndpointReference epTo = getPortLocationEPR(wsBinding);
- if (epTo == null) {
- org.apache.tuscany.sca.runtime.EndpointReference epr = ThreadMessageContext.getMessageContext().getTo();
- if (epr != null) {
- epTo = new EndpointReference(epr.getURI());
- } else {
- throw new RuntimeException("Unable to determine destination endpoint");
- }
+ if (epTo != null) {
+ options.setTo(epTo);
}
-
- Options options = new Options();
- options.setTo(epTo);
if (callbackBinding != null) {
options.setFrom(getPortLocationEPR(callbackBinding));
}
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInMessageReceiver.java Sat Jul 21 21:27:27 2007
@@ -63,7 +63,7 @@
} else {
String conversationID = provider.isConversational() ?
Axis2ServiceProvider.getConversationID(inMC) : null;
- String callbackAddress = inMC.getFrom() != null ? inMC.getFrom().getAddress() : null;
+ String callbackAddress = provider.getFromEPR(inMC);
provider.invokeTarget(operation, args, null, conversationID, callbackAddress);
}
} catch (InvocationTargetException e) {
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceInOutSyncMessageReceiver.java Sat Jul 21 21:27:27 2007
@@ -66,7 +66,7 @@
} else {
String conversationID = provider.isConversational() ?
Axis2ServiceProvider.getConversationID(inMC) : null;
- String callbackAddress = inMC.getFrom() != null ? inMC.getFrom().getAddress() : null;
+ String callbackAddress = provider.getFromEPR(inMC);
responseOM = (OMElement)provider.invokeTarget(operation, args, null, conversationID,
callbackAddress);
}
Modified: incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java (original)
+++ incubator/tuscany/java/sca/modules/binding-ws-axis2/src/main/java/org/apache/tuscany/sca/binding/axis2/Axis2ServiceProvider.java Sat Jul 21 21:27:27 2007
@@ -71,7 +71,9 @@
private ConfigurationContext configContext;
// TODO: what to do about the base URI?
- private static final String BASE_URI = "http://localhost:8080/";
+ //FIXME: changed from 8080 to 8085 as hack to work around current limitation that base URI
+ // must be the same for all servlet mappings in a single Tomcat or Jetty ServletHost
+ private static final String BASE_URI = "http://localhost:8085/";
public Axis2ServiceProvider(RuntimeComponent component,
AbstractContract contract,
@@ -96,7 +98,7 @@
if (uri.endsWith("/")) {
uri = uri.substring(0, uri.length() - 1);
}
- wsBinding.setURI(uri.toString());
+ wsBinding.setURI(uri);
}
protected void start() {
@@ -114,8 +116,7 @@
servlet.init(configContext);
String servletURI = wsBinding.getURI();
configContext.setContextRoot(servletURI);
- System.out.println("adding servlet mapping for " + servletURI);
- (new RuntimeException()).printStackTrace();
+ System.out.println("Axis2ServiceProvider: adding servlet mapping for " + servletURI);
servletHost.addServletMapping(servletURI, servlet);
}
@@ -187,14 +188,14 @@
actualURI = baseURI + "/" + componentURI;
}
- // with multiple services the default binding URI is the binding name
- if (bindingURI == null && component.getServices().size() > 1) {
- // if the binding doesn't have a name use the name of the service
- // (assumption, not in spec)
- if (wsBinding.getName() != null) {
+ // for service bindings with multiple services, the default binding URI is the binding name
+ // for callback reference bindings, add a prefix "$callback$." to ensure uniqueness
+ if (bindingURI == null &&
+ (wsBinding.isCallback() || component.getServices().size() > 1)) {
+ if (!wsBinding.isCallback()) {
bindingURI = URI.create(wsBinding.getName());
} else {
- bindingURI = URI.create(contract.getName());
+ bindingURI = URI.create("$callback$." + wsBinding.getName());
}
}
@@ -329,7 +330,7 @@
/**
* @param inMC
- * @return
+ * @return conversationID
*/
protected static String getConversationID(MessageContext inMC) {
String conversationID = null;
@@ -355,6 +356,35 @@
}
return conversationID;
+ }
+
+ //FIXME: is there any way to use the Axis2 addressing support for this?
+ /**
+ * @param inMC
+ * @return fromEPR
+ */
+ protected String getFromEPR(MessageContext inMC) {
+ String fromEPR = null;
+ if (contract instanceof RuntimeComponentService &&
+ contract.getInterfaceContract().getCallbackInterface() != null) {
+ //FIXME: this code can get a NPE if WS-Addressing information is not present
+ Iterator i =
+ inMC.getEnvelope().getHeader()
+ .getChildrenWithName(new QName("http://www.w3.org/2005/08/addressing", "From"));
+ for (; i.hasNext();) {
+ Object a = i.next();
+ if (a instanceof OMElement) {
+ OMElement ao = (OMElement)a;
+ for (Iterator adI =
+ ao.getChildrenWithName(new QName("http://www.w3.org/2005/08/addressing", "Address"));
+ adI.hasNext();) {
+ OMElement adE = (OMElement)adI.next();
+ fromEPR = adE.getText();
+ }
+ }
+ }
+ }
+ return fromEPR;
}
public Object invokeTarget(Operation op,
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/invocation/AbstractInvocationHandler.java Sat Jul 21 21:27:27 2007
@@ -29,6 +29,7 @@
import org.apache.tuscany.sca.invocation.Invoker;
import org.apache.tuscany.sca.invocation.Message;
import org.apache.tuscany.sca.invocation.MessageFactory;
+import org.apache.tuscany.sca.runtime.EndpointReference;
import org.apache.tuscany.sca.runtime.RuntimeWire;
import org.osoa.sca.Conversation;
@@ -57,6 +58,7 @@
Message msgContext = ThreadMessageContext.getMessageContext();
Object msgContextConversationId = msgContext.getConversationID();
+ EndpointReference epTo = msgContext.getTo();
Message msg = messageFactory.createMessage();
@@ -129,7 +131,11 @@
}
msg.setBody(args);
msg.setFrom(wire.getSource());
- msg.setTo(wire.getTarget());
+ if (epTo != null) {
+ msg.setTo(epTo);
+ } else {
+ msg.setTo(wire.getTarget());
+ }
ThreadMessageContext.setMessageContext(msg);
try {
// dispatch the wire down the chain and get the response
Modified: incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java (original)
+++ incubator/tuscany/java/sca/modules/core/src/main/java/org/apache/tuscany/sca/core/runtime/CompositeActivatorImpl.java Sat Jul 21 21:27:27 2007
@@ -555,8 +555,13 @@
}
RuntimeWire wire = createServiceWire(service, component, binding, null, null, binding, isCallback);
- //FIXME: need better way to create the source URI
- wire.getSource().setURI(binding.getURI());
+ //FIXME: need to decide if this is the best way to create the source URI
+ // The source URI is used by JDKCallbackInvocationHandler to find the callback wire
+ // corresponding to the forward wire that was used to invoke the service.
+ // This only works if the source URI is the same for the matched pair of forward and
+ // callback wires. The binding name seems a reasonable key to use for this match,
+ // as it allows the user to control which callback binding should be selected.
+ wire.getSource().setURI(binding.getName());
}
/**
Modified: incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite (original)
+++ incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/simplecallback.composite Sat Jul 21 21:27:27 2007
@@ -28,7 +28,12 @@
callbackInterface="simplecallback.MyServiceCallback" />
<binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceSoapService/MyServiceSoapPort)" />
<callback>
+ <!-- comment out the following for tactical==false -->
<binding.ws wsdlElement="http://simplecallback#wsdl.binding(MyServiceCallbackSoapBinding)" />
+ <!-- end of commented out code -->
+ <!-- uncomment the following for tactical==false
+ <binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceCallbackSoapService/MyServiceCallbackSoapPort)" />
+ ... end of commented out code -->
</callback>
</reference>
<implementation.java class="simplecallback.MyClientImpl" />
@@ -40,7 +45,12 @@
callbackInterface="http://simplecallback#wsdl.interface(MyServiceCallback)" />
<binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceSoapService/MyServiceSoapPort)" />
<callback>
+ <!-- comment out the following for tactical==false -->
<binding.ws wsdlElement="http://simplecallback#wsdl.binding(MyServiceCallbackSoapBinding)" />
+ <!-- end of commented out code -->
+ <!-- uncomment the following for tactical==false
+ <binding.ws wsdlElement="http://simplecallback#wsdl.port(MyServiceCallbackSoapService/MyServiceCallbackSoapPort)" />
+ ... end of commented out code -->
</callback>
</service>
<implementation.java class="simplecallback.MyServiceImpl" />
Modified: incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl?view=diff&rev=558461&r1=558460&r2=558461
==============================================================================
--- incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl (original)
+++ incubator/tuscany/java/sca/samples/simple-callback-ws/src/main/resources/wsdl/simplecallback.wsdl Sat Jul 21 21:27:27 2007
@@ -69,7 +69,9 @@
<wsdl:portType name="MyService">
<wsdl:operation name="someMethod">
<wsdl:input message="tns:someMethodRequest" name="someMethodRequest"/>
+ <!-- comment out the following for tactical==false -->
<wsdl:output message="tns:someMethodResponse" name="someMethodResponse"/>
+ <!-- end of commented out code -->
</wsdl:operation>
</wsdl:portType>
@@ -87,9 +89,11 @@
<wsdl:input name="someMethodRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
+ <!-- comment out the following for tactical==false -->
<wsdl:output name="someMethodResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
+ <!-- end of commented out code -->
</wsdl:operation>
</wsdl:binding>
@@ -109,6 +113,13 @@
<wsdl:service name="MyServiceSoapService">
<wsdl:port binding="tns:MyServiceSoapBinding" name="MyServiceSoapPort">
<wsdlsoap:address location="http://localhost:8085/MyServiceComponent"/>
+ </wsdl:port>
+ </wsdl:service>
+
+ <!--FIXME: remove the need for this fake service in the WSDL -->
+ <wsdl:service name="MyServiceCallbackSoapService">
+ <wsdl:port binding="tns:MyServiceCallbackSoapBinding" name="MyServiceCallbackSoapPort">
+ <!-- callback address needs to be determined dynamically -->
</wsdl:port>
</wsdl:service>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org