Hi,
ich beginne damit, mich mit Webservices zu befassen, aber ich komme damit nicht so ganz klar.
Ich habe mir WSO2 für Webservices mit C++ herunter geladen und unter Linux installiert.
Wie gehe ich jetzt weiter vor? Ich habe eine WSDL Datei, und möchte daraus die Client und Server Sourcefiles erzeugen.
Kennt sich hier jemand mit WSO2, welches eigentlich Apache Axis2 für C++ angepasst ist, aus?
Bin ich eigentlich mit meiner WSDL Datei auf dem richtigen Weg?
Ich wäre auch dankbar für links zu Einsteigertutorials oder Anleitungen die ein minimales Beispiel von A-Z durcharbeiten. Oder gibt es dazu irgendwelche (nicht allgemein Webservices betreffende) Bücher?
Ich habe auch laut Anleitung das WSDL2CPP Script erstellt, aber wenn ich die WSDL Beispieldatei damit verwende bekomme ich immer folgenden Fehler:
WSDL
Danke!
ich beginne damit, mich mit Webservices zu befassen, aber ich komme damit nicht so ganz klar.
Ich habe mir WSO2 für Webservices mit C++ herunter geladen und unter Linux installiert.
Wie gehe ich jetzt weiter vor? Ich habe eine WSDL Datei, und möchte daraus die Client und Server Sourcefiles erzeugen.
Kennt sich hier jemand mit WSO2, welches eigentlich Apache Axis2 für C++ angepasst ist, aus?
Bin ich eigentlich mit meiner WSDL Datei auf dem richtigen Weg?
Ich wäre auch dankbar für links zu Einsteigertutorials oder Anleitungen die ein minimales Beispiel von A-Z durcharbeiten. Oder gibt es dazu irgendwelche (nicht allgemein Webservices betreffende) Bücher?
Ich habe auch laut Anleitung das WSDL2CPP Script erstellt, aber wenn ich die WSDL Beispieldatei damit verwende bekomme ich immer folgenden Fehler:
Code:
Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:271)
at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
at org.apache.axis2.wsdl.WSDL2CPP.main(WSDL2CPP.java:19)
Caused by: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:53)
at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:224)
... 2 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.axis2.wsdl.codegen.extension.SimpleDBExtension.engage(SimpleDBExtension.java:50)
... 3 more
Caused by: org.apache.axis2.schema.SchemaCompilationException: java.io.IOException: Root location needs to be a directory!
at org.apache.axis2.schema.writer.CPPBeanWriter.init(CPPBeanWriter.java:185)
at org.apache.axis2.schema.SchemaCompiler.<init>(SchemaCompiler.java:211)
at org.apache.axis2.schema.ExtensionUtility.invoke(ExtensionUtility.java:100)
... 8 more
Caused by: java.io.IOException: Root location needs to be a directory!
at org.apache.axis2.schema.writer.CPPBeanWriter.initWithFile(CPPBeanWriter.java:300)
at org.apache.axis2.schema.writer.CPPBeanWriter.init(CPPBeanWriter.java:146)
... 10 more
WSDL
Code:
<definitions name="HelloService"
targetNamespace="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.examples.com/wsdl/HelloService.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<message name="SayHelloRequest">
<part name="firstName" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>
<portType name="Hello_PortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
<binding name="Hello_Binding" type="tns:Hello_PortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</input>
<output>
<soap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="urn:examples:helloservice"
use="encoded"/>
</output>
</operation>
</binding>
<service name="Hello_Service">
<documentation>WSDL File for HelloService</documentation>
<port binding="tns:Hello_Binding" name="Hello_Port">
<soap:address location="http://www.examples.com/SayHello/" />
</port>
</service>
</definitions>
Danke!