[PHP/SOAP] voorbeeld uit readme.txt van NuSOAP lukt niet

Pagina: 1
Acties:
  • 175 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb NuSOAP gedownload om ook eens met SOAP te spelen met PHP. Maar het loopt al mis met het standaardvoorbeeld!

Ik heb dit gedaan:
1) NuSOAP 0.6.4 gedownload en op mijn test-server gezet
2) bestand server_example.php aangemaakt met code uit readme.txt van NuSOAP: "BASIC SERVER EXAMPLE" (zie onder)
3) server_example.php geopend in mijn browser

Dit is de output:

XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  <?xml version="1.0" ?> 
- <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd">
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault>
  <faultcode>Server</faultcode> 
  <faultactor>method '' not defined in service ''</faultactor> 
  <faultstring /> 
- <detail>
  <soapVal xsi:type="xsd:string" /> 
  </detail>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>
- <!-- 
soap_server: entering parseRequest() on 18:10 2004-01-30
soap_server: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*
soap_server: Accept-Language: en,nl;q=0.5
soap_server: Accept-Encoding: gzip, deflate
soap_server: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
soap_server: Host: coen2
soap_server: got encoding: UTF-8
soap_server: method name: 
soap_server: method '' not found!
soap_server: parser debug: 
soap_parser: xml was empty, didn't parse!

soap_server: server sending...



  --> 


Zoals te zien krijg ik een foutmelding van NuSOAP: "method '' not defined in service ''". Mijns inziens moet dit niet gebeuren, maar heb voor de zekerheid ook maar een client-script aangemaakt, ook uit die readme.txt, "BASIC CLIENT USAGE EXAMPLE" (zie onder). Nu is de output:

code:
1
Array ( [faultcode] => Server [faultactor] => method '' not defined in service '' [faultstring] => [detail] => Array ( [soapVal] => ) )


Ofwel hetzelfde. Het lijkt er op alsof ik iets heel "basics" mis, maar ik zie het gewoon echt niet. |:( Ziet iemand wat ik mis?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
BASIC SERVER EXAMPLE

<?php

require_once('nusoap.php');
$s = new soap_server;
$s->register('hello');
function hello($name){
    // optionally catch an error and return a fault
    if($name == ''){
        return new soap_fault('Client','','Must supply a valid name.');
    }
    return "hello $name!";
}
$s->service($HTTP_RAW_POST_DATA);

?>

BASIC CLIENT USAGE EXAMPLE

<?php

require_once('nusoap.php');
$parameters = array('name'=>'coen');
$soapclient = new soapclient('http://coen2/nusoap/server_example.php');
// aangepast omdat ik alleen "Array" als output kreeg
// echo $soapclient->call('hello',$parameters);
print_r($soapclient->call('hello',$parameters));

?>


Oh ja, mijn testserver is een Windows XP-bak met Apache 2.0.48 en PHP 4.3.4. Heb het ook geprobeerd op een Linux-bak met Apache 2.0 en PHP 4.3.4.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goed, we zijn wat uurtjes verder en ik heb ook deze: http://www.zend.com/zend/tut/tutorial-campbell.php tutorial gevolgd en de samples letterlijk ge-copy-paste, natuurlijk wel de interne URL aangepast! Maar |:( het werkt nog steeds niet.

Output van taxCalc.php:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
  <?xml version="1.0" ?> 
- <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:si="http://soapinterop.org/xsd">
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault>
  <faultcode>Server</faultcode> 
  <faultactor>method '' not defined in service ''</faultactor> 
  <faultstring /> 
- <detail>
  <soapVal xsi:type="xsd:string" /> 
  </detail>
  </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
  </SOAP-ENV:Envelope>
- <!-- 
soap_server: entering parseRequest() on 17:19 2004-02-02
soap_server: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*
soap_server: Accept-Language: en,nl;q=0.5
soap_server: Accept-Encoding: gzip, deflate
soap_server: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)
soap_server: Host: www.peppered.nl
soap_server: got encoding: UTF-8
soap_server: method name: 
soap_server: method '' not found!
soap_server: parser debug: 
soap_parser: xml was empty, didn't parse!

soap_server: server sending...



  -->


Output van taxCalcClient.php:

Tax calculated:
FAULT:
Code: Server
String:


Het lijkt me dat er met taxCalc.php al iets mis gaat, maar ik kom er niet uit wat. Iemand ervaring met NuSOAP? Oh ja, broncode van de .php-files kun je letterlijk in genoemde tutorial vinden.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nog een update: het is wel gelukt om met NuSOAP en PHP een client te schrijven die met een IIS-server praat. Het lijkt dus echt een probleem te zijn met de SOAP-server in PHP...