Isomorphic,
Currently running SmartClient 7.0RC2 Power, Latest Firefox browser (3.6.12).
I’m able to call the webService.callOperation for my login call, and it produces correct XML / SOAP data that I get a response from. However, When I try to follow the examples in the showcase for creating a datasource with custom XPath type datasource fields, I get what you see below. The data is correct, just not in XML format. I also get the warning message you see in the “logWarning.txt” post. Any help would be greatly appreciated. This is only my second time posting on here, so if I missed something, please feel free to say so and I will upload it as soon as I can.
The WSDatasource is the java file calling loadWSDL, and creating the datasource, forms.xml is the downloaded WSDL File, the PseudoSOAPMessage is the output in the dev console, and the Log Warning is the warning in the console.
Thanks
Steve
WSDatasource.txt (3.81 KB)
forms.xml (14.4 KB)
LogWarning.txt (2.14 KB)
PseudoSOAPMessage.txt (554 Bytes)
Have you checked whether the warning is in fact correct (that the namespaceURL you set with setServiceNamespace doesn’t match the one in the WSDL file)?
From what I see, they do match. Looking at the Weather SOAP Search example in the EE showcase, I did notice something I’m curious about, that is different from my current setup. I have however tried this and it has no difference. The initial constructor call for the OperationBinding on the example passes in the wsdlURL for the dataURL, and I’m passing in the namespaceURL. Which is required?
namespace URL declaration:
private String namespaceURL = "http://ws.185red.com/";
WSDL File Target NameSpace:
name="Ext_Webservice_Soap" targetNamespace="http://ws.185red.com">
Also, noticing that although I’m calling:
String wsdlURL = "http://ws.185red.com/wsdl/forms";
responseDS.setServiceNamespace(wsdlURL);
When I tested the responseDS dataprotocol format with :
SC.logWarn(responseDS.getDataProtocol().getValue());
I get “getParams” as the result. Per the documentation, when I set an operation binding to a WSRequest, and the serviceNamespace, the datasource was supposed to default to SOAP, correct? When I set the protocol to SOAP for either the OperationBinding or the Datasource as a whole, and issue a fetch, my browser locks / crashes with the same warning message from the log.
OK, last post until I hear something, promise, managed to get a screen grab of another message in the log, with the following code added:
responseDS.setDataProtocol(DSProtocol.SOAP);
See getSoapPortRecurse.jpg

The target namespace on the <wsdl:definitions> is the right value to passed. However the value you are passing and the value in your WSDL file appear to differ - one has a trailing slash and one doesn’t.
Wow, do I feel silly now… changed the variable to match the WSDL and it magically worked… now I just need to iron out the XPath expressions to pull the proper data…
Thank you so much Isomorphic!!!