Hi,
After I
made the "Calculator" demo working, I created my own wsdl file and
implemented as C++ server. Basically, it has only two very simple
functions,
public interface
DCGSClientWebService
{
public
String sendQueryToQS (String queryString);
public String
sendDownloadCommand (String arg0, String
arg1);
}
I generated the wsdl by
using the following command (Java2WSDL tool). (How can I get wsdl
file by other means, am I using the right options?)
java -cp "classpath
..... " org.apache.axis.wsdl.Java2WSDL -o
DCGSClientWebService.wsdl -l"http://localhost/axis/DCGSClientWebServer"
-n "http://localhost/axis/DCGSClientWebServer"
DCGSClientWebService
After I got the wsdl
file called "DCGSClientWebService.wsdl", I did everything EXACTLY as
the "Calculator" demo. Both server and client side in
C++.
However, when I use the
C++ client to invoke function "sendQueryToQS", I got an error:
Exception : Cannot
deserialize the requested element
I do not know what's
going wrong.
Two things that I
notice make me suspicious:
1) I can not see
my own wsdl file by going to http://localhost:8000/axis/DCGSClientWebServer, however, I can
see the http://localhost:8000/axis/calculator.
(But if I took Calculator.wsdl and implemented C++ server and client by myself,
I could NOT see http://localhost:8000/axis/myCalculator, even the
client can invoke my own calculator
succcefully).
2) The wsdl file
may have some difference, e.g: in my wsdl file,
<wsdl:service name="DCGSClientWebServiceService">
<wsdl:port name="DCGSClientWebServer"
binding="impl:DCGSClientWebServerSoapBinding">
<wsdlsoap:address location="http://localhost/axis/DCGSClientWebServer"/>
There is an "impl:"
there, but in the "calculator" demo, there is an "intf:" before the
Soapbing. What's the differenece ?
<wsdl:service name="Calculator">
<wsdl:port
binding="intf:CalculatorSoapBinding"
name="Calculator">
<wsdlsoap:address
location="http://localhost/axis/Calculator"/>
</wsdl:port>
Thanks for your
help.
Richard
Liu
Software Engineer at
Boeing