WSDL --> erstmal ganz einfach...

MikeG1980

Grünschnabel
aber leider geht es bei mir noch nicht...

also ich versuche gerade auf dieser Seite : http://www.professionelle-softwareentwicklung-mit-php5.de/erste_auflage/programming-php.soap.html
das Soap-Tutorial zu verstehen, und leicht abzuändern...

Da es schon eine HalloWorld-Funktion gibt, möchte ich jetzt zum Test mal eine Hallo Hölle-Funktion hinzufügen. Ich habe so den Eindruck, dass meine WSDL-Datei falsch ist, oder habe ich einen anderen Fehler gemacht?

Datei Bulletin2_server.php
PHP:
<?php
class Webdienst {
  public function halloWelt() {
    return 'Hallo Welt';
  }
  
    public function halloHoelle() {
    return 'Hallo Hölle';
  }
}

try {
  $server = new SOAPServer('Bulletin2.wsdl');
  $server->setClass('Webdienst');
  $server->handle();
}

catch (SOAPFault $f) {
  print $f->faultstring;
}
?>


Datei client.php

PHP:
<?php
try {

 $client = new SOAPClient('http://localhost/Bulletin2_server.php?wsdl');
 
  print $client->halloWelt();
  print $client->halloHoelle();
  
}
 
catch (SOAPFault $f) {
  print $f->faultstring;
}
?>


und zu guter letzt, meiner Meinung nach der Grund für meine Problemchen:

Die WSDL-Datei:

Code:
<?xml version ="1.0" encoding ="UTF-8" ?>

<definitions name="Bulletin2_server"
 targetNamespace="http://localhost/Bulletin2_server"
 xmlns:tns=" http://localhost/Bulletin2_server"
 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="halloWeltResponse">
  <part name="Result" type="xsd:string"/>
 </message>

 <portType name="HalloWeltPortType">
  <operation name="halloWelt">
   <output message="tns:halloWeltResponse"/>
  </operation>
    <operation name="halloHoelle">
   <output message="tns:halloHoelleResponse"/>
  </operation>
 </portType>

 <binding name="HalloWeltBinding" type="tns:HalloWeltPortType">
  <soap:binding
   style="rpc"
   transport="http://schemas.xmlsoap.org/soap/http"/>

  <operation name="halloWelt">
   <soap:operation soapAction="urn:hallowelt#halloWelt"/>
   <output>
    <soap:body
     use="encoded"
     namespace="urn:hallowelt"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
   </output>
  </operation>
 </binding>
 

 <message name="halloHoelleResponse">
  <part name="Result" type="xsd:string"/>
 </message>

 <binding name="HalloHoelleBinding" type="tns:HalloHoellePortType">
  <soap:binding
   style="rpc"
   transport="http://schemas.xmlsoap.org/soap/http"/>

  <operation name="halloHoelle">
   <soap:operation soapAction="urn:hallohoelle#halloHoelle"/>
   <output>
    <soap:body
     use="encoded"
     namespace="urn:hallohoelle"
     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
   </output>
  </operation>
 </binding>


 <service name="HalloWeltService">
  <port name="HalloWeltPort" binding="HalloWeltBinding">
   <soap:address location="http://localhost/Bulletin2_server.php"/>
  </port>
 </service>
</definitions>


Also ich wäre für jede Hilfe dankbar!!

Gruß,
Michael
 
Zurück