[PHP5] SOAP: Einfaches Skript funktioniert nicht...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [PHP5] SOAP: Einfaches Skript funktioniert nicht...

    Hallo,
    ich versuche einen ganz einfachen SOAP-Zugriff zu machen, hierzu nutze ich folgende Dateien:

    Hier die WSDL-Datei:

    Code:
     <?xml version ='1.0' encoding ='UTF-8' ?> 
    <definitions name='TestServer' 
    xmlns:tns='http://localhost/test/soap/testserver.wsdl' 
    xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' 
    xmlns:xsd='http://www.w3.org/2001/XMLSchema' 
    xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/' 
    xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' 
    xmlns='http://schemas.xmlsoap.org/wsdl/'> 
    
    <message name='addiereAnfrage'> 
    	<part name='sum1' type='xsd:float'/> 
    	<part name='sum2' type='xsd:float'/> 
    </message> 
    <message name='addiereAntwort'> 
    	<part name='Result' type='xsd:float'/> 
    </message> 
    <portType name='TestServerPortType'> 
    	<operation name='addiere'> 
    		<input message='tns:addiereAnfrage'/> 
    		<output message='tns:addiereAnwort'/> 
    	</operation> 
    </portType> 
    <binding name='TestServerBinding' type='tns:TestServerPortType'> 
    	<soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/> 
    		<operation name='addiere'> 
    		<soap:operation soapAction='urn:xmethodsTestServer#addiere'/> 
    		<input> 
    			<soap:body use='encoded' namespace='urn:xmethodsTestServer'
    
     encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> 
    		</input> 
    		<output> 
    			<soap:body use='encoded' namespace='urn:xmethodsTestServer'
    encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/> 
    		</output> 
    	</operation> 
    </binding>
    <service name='TestServerService'> 
    <port name='TestServerPort' binding='TestServerBinding'> 
    <soap:address location='http://localhost/test/soap/server.php'/> 
    </port> 
    </service> 
    </definitions>

    Hier meine Server.php

    PHP-Code:
    <?php 
    function addiere($sum1$sum2) { 
    return 
    $sum1 $sum2

    $server = new SoapServer(NULL
    array(
    'uri' => "http://localhost/test/soap/")); 
    $server->addFunction('addiere'); 
    $server->handle(); 
    ?>
    Und hier meine Client.php:

    PHP-Code:
     <?php 
    $client 
    = new SoapClient('http://localhost/test/soap/testserver.wsdl'); 
    //{url} wie immer ersetzen 
    $result $client->addiere(1020); 
    echo 
    $result
    ?>

    Also ich bin für jede Hilfe dankbar. So langsam bin ich da echt verzweifelt, weiß nicht, warum das nicht läuft...

    Michael
    Zuletzt geändert von MikeG1980; 22.01.2006, 20:57.

  • #2
    Die Fehlermeldung sieht übrigens folgendermaßen aus:


    Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Missing with name 'tns:addiereAnwort' in D:\wincvs\webuni\test\soap\client.php:2 Stack trace: #0 D:\wincvs\webuni\test\soap\client.php(2): SoapClient->__construct('http://localhos...') #1 {main} thrown in D:\wincvs\webuni\test\soap\client.php on line 2

    EDIT:
    by TobiaZ: Fehlermeldungen muss man beim besten Willen nicht in CODE-Tags packen.
    Zuletzt geändert von TobiaZ; 22.01.2006, 19:57.

    Kommentar


    • #3
      Also wenn man 5km nach rechts scrollen muss, wird dir mit sicherheit keiner weiterhelfen..

      Kommentar


      • #4
        das hatte ich aber schon vor ner stunde berichtigt...

        Kommentar


        • #5
          Ups, Sorry!

          Werde in meine Post in Zukunft besser formatieren...

          Hat vielleicht jemand eine Idee, wie man eine einfache SOAP-Verbindung mit WSDL-File macht?

          Gruß,
          Michael

          Kommentar


          • #6
            Bearbeite mal deinen ersten Beitrag..

            Kommentar


            • #7
              Ups, dachte der passt, aber ich habe auch einen eher großen Monitor...

              Naja, jetzt sollte es ordentlich aussehen (jedenfalls tut es das bei mir)...

              Kommentar


              • #8
                Was hast Du denn für nen Monitor? 40 Zoll? Ich hab vorher, das Fenster über 2 19° TFT's ziehen müssen um alles sehen zu können..

                Naja, ist ja jetz auch wayne. Zu deinem Problem:
                suchen, lesen und staunen

                Kommentar


                • #9
                  Danke für den Link, den habe ich auch schon gesehen, und immer wenn ich versuche die Sachen so nachzubasteln bekomme ich folgende Fehlermeldung:


                  Warning: SoapClient::__construct(http://localhost/HalloWelt.php?wsdl) [function.--construct]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Service Error in D:\wincvs\webuni\test\soap\client.php on line 3

                  Warning: SoapClient::__construct() [function.--construct]: I/O warning : failed to load external entity "http://localhost/HalloWelt.php?wsdl" in D:\wincvs\webuni\test\soap\client.php on line 3
                  SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://localhost/HalloWelt.php?wsdl'


                  Erstaunlicherweise funktionieren diese Skripte auf meinem anderen Rechner, auf dem ich die selbe aktuelle Version von XAMPP installiert habe, ohne Probleme. Leider muss ich das Zeugs jetzt auf meinem Notebook hinbekommen...

                  Habe daraufhin nochmal XAMPP neu installiert, und es geht immer noch nicht...

                  Naja, irgendwie seltsam die ganze Sache...

                  Kommentar

                  Lädt...
                  X