I've tried the combinations:
C# web service/ CLR C++ client --> success
C# web service / native C++ client --> success
JAX-WS web service / C# client --> success
JAX-WS web service / CLR C++ client --> success
JAX-WS web service / native C++ client --> fail
All of them succeed except the last one. The IDE reports when adding the web reference:
1>sproxy : error SDL1000 : Unspecified error
1>sproxy : error SDL1002 : failure in generating output file: "WebReference.h"
One difference I notice when adding C# web service & JAX-WS service is that:
when adding a C# service, I have
Methods
sayHello ( ) As string
but when adding a JAX-WS service I have
Methods
sayHello ( )
Seems the return type is missing. After inspecting the two wsdl, I find the the return type is directly contained in the C# service WSDL:
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="sayHelloResult" type="s:string" />
</s:sequence>
</s:complexType>
while in the JAX-WS WSDL, it presents as a reference:
<xsd:schema>
<xsd:import namespace="http://www.zorrogps.com" schemaLocation="http://localhost:8080/WebService/HelloServicePort?xsd=1" />
</xsd:schema>
in http://localhost:8080/WebService/HelloServicePort?xsd=1:
<xs:complexType name="sayHelloResponse">
<xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
I guess VC is not able to parse the reference in WSDL which leads to the failure of adding web reference. Is there any solution for that?