der Umgang mit array-Element in NuSoap?
derzeit bin ich mit der PHP-Version 5.4.16, und NuSoap 0.95, ich habe versucht dieses Beispiel an :
hier
gezeigt, die den server-code wie folgt ;
$server->wsdl->addComplexType(
'Chapter',
'complexType',
'struct',
'all',
'',
array(
'title' => array('name'=>'title','type'=>'xsd:string'),
'page' => array('name'=>'page','type'=>'xsd:int')
)
);
$server->wsdl->addComplexType(
'ChapterArray',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Chapter[]')
),
'tns:Chapter'
);
$server->wsdl->addComplexType(
'Book',
'complexType',
'struct',
'all',
'',
array(
'author' => array('name'=>'author','type'=>'xsd:string'),
'title' => array('name'=>'title','type'=>'xsd:string'),
'numpages' => array('name'=>'numpages','type'=>'xsd:int'),
'toc' => array('name'=>'toc','type'=>'tns:ChapterArray')
)
);
$server->register(
'getBook',
array('title'=>'xsd:string'),
array('return'=>'tns:Book'),
$NAMESPACE);
function getBook($title) {
//Create TOC
$toc = array();
$toc[] = array('title' => 'Chapter One', 'page' => 1);
$toc[] = array('title' => 'Chapter Two', 'page' => 30);
//Create book
$book = array(
'author' => "Jack London",
'title' => $title,
'numpages' => 42,
'toc' => $toc);
return $book;
}
bekam aber keine Fehlermeldung bei der SOAP-Antwort, ich Teste es mit SopUI. ich bekam eine Fehlermeldung wie diese :
<br />
<b>Notice</b>: Array to string conversion in <b>E:\xampp\htdocs\myweb\lib\nusoap.php</b> on line <b>6132</b><br />
<br />
<b>Notice</b>: Array to string conversion in <b>E:\xampp\htdocs\myweb\lib\nusoap.php</b> on line <b>6132</b><br />
<?xml version="1.0" encoding="ISO-8859-1"?><SOAP-ENV:Envelope 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/"><SOAP-ENV:Body><ns1:getBookResponse xmlns:ns1="http://localhost/myweb"><return><author>Jack London</author><title>This is my book</title><numpages>42</numpages><toc><item><title>Chapter One</title><page>1</page></item><item><title>Chapter Two</title><page>30</page></item></toc></return></ns1:getBookResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
wie kann ich diesen Fehler beheben? kann mir jemand helfen, dies zu lösen, Fehler bitte... vielen Dank im Voraus...
Suchen in nusoap.php in Zeile 6132, um zu sehen, was es versucht zu konvertieren zu einem string. Es sieht aus wie Ihre Absenden ein array, das an irgendeinem Ort und nusoap versucht, es zu benutzen, als eine Schnur.
InformationsquelleAutor vidihermes | 2013-09-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
In
nusoap > lib > nusoap.php
-, Kommentar-Zeile 6132:Das problem ist, wenn $k, $v oder $typeDef ist ein array statt als string zu haben. Für mich $v wurde ein array.
Vielen Dank! Es beheben problem auf array senden an client!
InformationsquelleAutor Bandhu Neha
InformationsquelleAutor Julio César Duarte
Eine rasche und reibungslose Lösung, als die, kommentieren Sie die Zeile
6132
imnusoap > lib > nusoap.php
wäre zu prüfen, ob$v
ist ein array, und wandelt es in ein string:aktuelle Zeile 6132:
$this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]");
änderung:
InformationsquelleAutor marebine