Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SOAP: looks like we got no XML document in <file>
mr.watson
post 21.08.2008, 14:03:27
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 18.08.2008

Ostrzeżenie: (0%)
-----


Witam,

Mam taki problem. Napisałem serwer soap:

CODE

<?php
require_once('Service.inc.php');
ini_set('soap.wsdl_cache_enabled', "0");
$server = new SoapServer('http://soap2.nettur.pl/Wyszukiwarka.wsdl');
$server->setClass('Wyszukiwarka');
$server->handle();
?>


gdzie plik Service.inc.php ma zawartość:

CODE

<?php
class Wyszukiwarka
{
public function Test($count)
{
$answer = str_repeat('x', $count);
return $answer;
}
}
?>


zaś klient soap wygląda tak:

CODE

<?php
ini_set('soap.wsdl_cache_enabled', "0");

$Client = new SoapClient('http://soap2.nettur.pl/index.php?wsdl',
array('trace' => 1, 'exceptions' => 1));

echo "<pre>";

try
{
$Answer = $Client->Test(5906);
}
catch(SoapFault $e)
{
echo "<br>error message:<br>";
echo $e."<br>";
echo $e->getMessage();
echo "<br>lastrequest:<br>";
echo wordwrap(htmlentities($Client->__getLastRequest()));
echo "<br>lastresponse:<br>";
echo wordwrap(htmlentities($Client->__getLastResponse()));
echo "<br>";
die();
}

var_dump($Answer);

echo "</pre>";
?>


Problem polega na tym, że jeżeli parametrem funkcji Test jest liczba większa niż 5907
wszystko działa poprawnie, zaś jeśli liczba jest z zakresu 1-5906 dostaję następujący
komunikat:

SoapFault exception: [Client] looks like we got no XML document in /usr/home/nettwww/soap_client/inne/Client.php:11
Stack trace:
#0 [internal function]: SoapClient->__call('Test', Array)
#1 /usr/home/nettwww/soap_client/inne/Client.php(11): SoapClient->Test(5906)
#2 {main} zaś funkcja $Client->__getLastResponse() oprócz koperty zwraca jakieś śmieci.

Co ciekawe, "poprawność" parametru Test zależy od nazwy samej funkcji (i całkowitego rozmiaru
koperty), tzn. jeżeli zamienimy Test np. na getResult błąd będzie się pojawiał dla
parametru z zakresu 1-5896

Problem zaczął się wraz z postawienie na serwerze php w wersji 5.2.6. Poprzednio
była wersja 5.1.4 i wszystko działało

Czy ktoś zetknął sie z tym problemem?

Pozdrawiam

OK. Już znalazłem. W pliku serwera SOAP po znakach ?> były jakieś dodatkowe znaki. Usunięcie owych dodatkowych znaków ukróciło "dziwaczne" zachowanie SOAP-a yahoo.gif

Ten post edytował mr.watson 18.08.2008, 14:04:16
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.05.2025 - 04:38