Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SOAP pierwsze kroki
Forum PHP.pl > Forum > PHP
smiady
Zdobywam wiedzę i uczę się SOAPa i mam taki kod:

Plik SoapName.php
  1. class Name {
  2. private $full_name;
  3.  
  4. public function createName($first_name, $second_name) {
  5. $first= strtoupper(substr($first_name, 0, 1));
  6. $second= ucfirst(strtolower($second_name));
  7.  
  8. $this->full_name= $first . '. ' . $second;
  9.  
  10. return $this->full_name;
  11. }
  12.  
  13. public function countName() {
  14. return strlen($this->full_name);
  15. }
  16. }
  17.  
  18. $options= array('uri' => 'http://localhost/soap');
  19. $server= new SoapServer(NULL, $options);
  20. $server->setClass('Name');
  21. $server->handle();


index.php
  1. try {
  2. $options= array('uri' => 'http://localhost/soap',
  3. 'location' => 'http://localhost/soap/SoapName.php');
  4. $client= new SoapClient(NULL, $options);
  5. echo $client->createName('alicja', 'kowalska');
  6. } catch(Exception $e) {
  7. echo $e->getMessage();
  8. }


Klasa jest dobrze napisana, bo sprawdzałem, ale niestety wyskakuje mi taki wyjątek:
DTD are not supported by SOAP
Czy ktoś się kiedyś z takim problemem spotkał ?
wladimirec
Kod wygląda dobrze i działa (SOA #1).
A próbowałeś ustawić opcję 'trace' => true w kliencie i sprawdzić co zwracają metody
SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse, SoapClient->__getLastResponseHeaders ?
smiady
Dzięki za zainteresowanie.

Dopisałem kod: echo $client->__getLastRequest;
W $options ustawiłem 'trace' => true
Niestety komunikat nadal jest taki sam ...
wladimirec
przede wszystkim sprawdź co zwraca
SoapClient->__getLastResponse i SoapClient->__getLastResponseHeaders
Spawnm
Na dev serwie warto ustawić ini_set('soap.wsdl_cache_enabled', 0);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.