Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen

Fissko

Mitglied
Ich versuche grade die Operationen/Methoden eines kleines WebService im Browser mit Apache Axis 2 aufzurufen. Dabei habe ich es schon geschafft den Webservice an sich aufzurufen. Leider ist es nicht möglich die drei Operationen/Methoden: alleFahrraderAnzeigen, kaufeFahrrad, verkaufeFahrrad aufzurufen. Diese sind zwar noch nicht implementiert, aber eigentlich sollte ich diese wenigstens finden, wenn sie als verfügbar angezeit werden.

Hier ein Bild mit dem WebService: https://www.directupload.net/file/d/5291/eoqexw9y_png.htm
Und hier was passiert, wenn ich die Operation "alle FahrraederAnzeigen" aufrufen will:
https://www.directupload.net/file/d/5291/jgj2i7qo_png.htm

Der Befehl, den ich dafür verwende lautet: "http://localhost:8080/AKWS1011GXXtemp/services/FahrradVerleih?method=alleFahrraederAnzeigen"

Ist die Syntax falsch oder kann es am Code liegen:? Danke schonmal
Code:
<wsdl:definitions name="AKWS1011GXX" targetNamespace="http://AKWS1011GXX/FahrradVerleih">
<wsdl:types>
</wsdl:types>
<wsdl:message name="alleFahrraederAnzeigenRequest">
<wsdl:part name="parameters" element="typesns:alleFahrraederAnzeigen">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="verkaufeFahrradRequest">
<wsdl:part name="parameters" element="typesns:verkaufeFahrrad">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="kaufeFahrradRequest">
<wsdl:part name="parameters" element="typesns:kaufeFahrrad">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="kaufeFahrradResponse">
<wsdl:part name="parameters" element="typesns:kaufeFahrradResponse">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="alleFahrraederAnzeigenResponse">
<wsdl:part name="parameters" element="typesns:alleFahrraederAnzeigenResponse">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="verkaufeFahrradResponse">
<wsdl:part name="parameters" element="typesns:verkaufeFahrradResponse">
    </wsdl:part>
</wsdl:message>
<wsdl:portType name="FahrradVerleih">
<wsdl:operation name="alleFahrraederAnzeigen">
<wsdl:input message="tns:alleFahrraederAnzeigenRequest">
    </wsdl:input>
<wsdl:output message="tns:alleFahrraederAnzeigenResponse">
    </wsdl:output>
</wsdl:operation>
<wsdl:operation name="kaufeFahrrad"><wsdl:input message="tns:kaufeFahrradRequest">
    </wsdl:input>
<wsdl:output message="tns:kaufeFahrradResponse">
    </wsdl:output>
</wsdl:operation><wsdl:operation name="verkaufeFahrrad">
<wsdl:input message="tns:verkaufeFahrradRequest">
    </wsdl:input>
<wsdl:output message="tns:verkaufeFahrradResponse">
    </wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="FahrradVerleihSoapBinding" type="tns:FahrradVerleih">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="alleFahrraederAnzeigen">
<soap:operation soapAction="http://AKWS1011GXX/FahrradVerleih/alleFahrraederAnzeigen"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="kaufeFahrrad">
<soap:operation soapAction="http://AKWS1011GXX/FahrradVerleih/kaufeFahrrad"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input><wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="verkaufeFahrrad">
<soap:operation soapAction="http://AKWS1011GXX/FahrradVerleih/verkaufeFahrrad"/><wsdl:input>
<soap:body use="literal"/>
</wsdl:input><wsdl:output><soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="FahrradVerleihService">
</wsdl:service>
</wsdl:definitions>
 
Danke. Bei dieser URL erhalte ich die WSDL Datei "FahrradVerleihService.wsdl"

Code:
<wsdl:definitions name="AKWS1011GXX" targetNamespace="http://AKWS1011GXX/FahrradVerleih">
<wsdl:types>
<xsd:schema targetNamespace="http://AKWS1011GXX/FahrradVerleih/Types">
<xsd:element name="alleFahrraederAnzeigen">
</xsd:element>
<xsd:element name="alleFahrraederAnzeigenResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FahrradArrayItems" type="typesns:FahrradArray"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="kaufeFahrrad">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fahrradID" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="kaufeFahrradResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="kaufOK" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="verkaufeFahrrad">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fahrradID" type="xsd:long"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="verkaufeFahrradResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="verkaufOK" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="FahrradArray">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="1" name="FahrradArrayItem" type="typesns:Fahrrad"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Fahrrad">
<xsd:sequence>
<xsd:element name="FahrradID" type="xsd:long"/>
<xsd:element name="farbe" type="xsd:string"/>
<xsd:element name="gekauft" type="xsd:boolean"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="alleFahrraederAnzeigenRequest">
<wsdl:part name="parameters" element="typesns:alleFahrraederAnzeigen">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="verkaufeFahrradRequest">
<wsdl:part name="parameters" element="typesns:verkaufeFahrrad">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="kaufeFahrradRequest">
<wsdl:part name="parameters" element="typesns:kaufeFahrrad">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="kaufeFahrradResponse">
<wsdl:part name="parameters" element="typesns:kaufeFahrradResponse">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="alleFahrraederAnzeigenResponse">
<wsdl:part name="parameters" element="typesns:alleFahrraederAnzeigenResponse">
    </wsdl:part>
</wsdl:message>
<wsdl:message name="verkaufeFahrradResponse">
<wsdl:part name="parameters" element="typesns:verkaufeFahrradResponse">
    </wsdl:part>
</wsdl:message>
<wsdl:portType name="FahrradVerleih">
<wsdl:operation name="alleFahrraederAnzeigen">
<wsdl:input message="tns:alleFahrraederAnzeigenRequest">
    </wsdl:input>
<wsdl:output message="tns:alleFahrraederAnzeigenResponse">
    </wsdl:output>
</wsdl:operation>
<wsdl:operation name="kaufeFahrrad">
<wsdl:input message="tns:kaufeFahrradRequest">
    </wsdl:input>
<wsdl:output message="tns:kaufeFahrradResponse">
    </wsdl:output>
</wsdl:operation>
<wsdl:operation name="verkaufeFahrrad">
<wsdl:input message="tns:verkaufeFahrradRequest">
    </wsdl:input>
<wsdl:output message="tns:verkaufeFahrradResponse">
    </wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="FahrradVerleihSoapBinding" type="tns:FahrradVerleih">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="alleFahrraederAnzeigen">
<soap:operation soapAction="http://AKWS1011GXX/FahrradVerlei/alleFahrraederAnzeigen"/>
<wsdl:input>
<soap:body use="literal
wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="kaufeFahrrad">
<soap:operation soapAction="http://AKWS1011GXX/FahrradVerleih/kaufeFahrrad"/>
<wsdl:input><soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="verkaufeFahrrad">
<soap:operation soapAction="http://AKWS1011GXX/FahrradVerleih/verkaufeFahrrad"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="FahrradVerleihService">
<wsdl:port name="FahrradVerleih" binding="tns:FahrradVerleihSoapBinding">
<soap:address location="http://localhost:8080/AKWS1011GXXtemp/services/FahrradVerleihService/"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

Aber ich würde gern eine der angezeigten Methoden aufrufen können. Auch wenn ich hier z.B. "http://localhost:8080/AKWS1011GXXtemp/services/FahrradVerleihService?method=alleFahrraederAnzeigen" wähle, erhalte ich die Fehlermeldung, dass die Operation nicht gefundenwurden. Ist die Url überhaupt richtig?

Hier erhalte ich das folgende Bild: https://www.directupload.net/file/d/5292/t77bfp3n_png.htm
 
Aber ich würde gern eine der angezeigten Methoden aufrufen können. Auch wenn ich hier z.B. "http://localhost:8080/AKWS1011GXXtemp/services/FahrradVerleihService?method=alleFahrraederAnzeigen" wähle, erhalte ich die Fehlermeldung, dass die Operation nicht gefundenwurden.
Naja, SOAP benötigt in der Regel spezielle Requests. Geh einfach mal davon aus, dass es funktioniert und baue einen richtigen SOAP-Client, mit dem Du den Spaß dann testen kannst.

Was mir gerade noch aufgefallen ist:

<soap:operation soapAction="http://AKWS1011GXX/FahrradVerlei/alleFahrraederAnzeigen"/>

Wo ist das h vom FahrradVerleih hin?
 
Naja, SOAP benötigt in der Regel spezielle Requests. Geh einfach mal davon aus, dass es funktioniert und baue einen richtigen SOAP-Client, mit dem Du den Spaß dann testen kannst.

Was mir gerade noch aufgefallen ist:

<soap:operation soapAction="http://AKWS1011GXX/FahrradVerlei/alleFahrraederAnzeigen"/>

Wo ist das h vom FahrradVerleih hin?

Das fehlende "h" könnte tatsächlich für Ärger gesorgt haben. Aber jetzt nach dem neu aufsetzen, kann ich immer noch keine Operationen aufrufen. Mal schaun...
Kennst du irgedwelche aktuellen Tutorialseiten für Webservices z.B. im Top down Verfahren? Leider sind alle die ich gefunden habe veraltet oder sehr fehlerbehaftet. Finde leider wenig zu diesem Thema....
 
Zuletzt bearbeitet:

Zurück
Oben