Retunering af array fra SOAP server
HejJeg har følgene SOAP server:
<?php
require('../lib/nusoap.php');
$server = new soap_server();
function getBruger($id) {
mysql_connect('localhost','root','');
mysql_select_db('test');
$query = "SELECT brugernavn FROM cmr_users "
. "WHERE brugerid = '$id'";
$result = mysql_query($query);
$row = mysql_fetch_assoc($result);
return $row['brugernavn'];
}
function getBrugere($something) {
mysql_connect('localhost','root','');
mysql_select_db('test');
$query = "SELECT brugernavn FROM cmr_users'";
$result = mysql_query($query);
$brugernavnArr = array();
while ($row = mysql_fetch_assoc($result)) {
$brugernavnArr[] = $row['brugernavn'];
}
return $brugernavnArr;
}
$server->configureWSDL('cmrServer', 'urn:bruger');
$server->register("getBruger",
array('id' => 'xsd:int'),
array('return' => 'xsd:string'),
'urn:bruger',
'urn:bruger#getBruger');
$server->wsdl->addComplexType(
'DataList',
'complexType',
'struct',
'all',
'',
array(
'brugernavn' => array('name' => 'brugernavn', 'type' => 'xsd:string')
)
);
$server->wsdl->addComplexType(
'DataListRs',
'complexType',
'array',
'',
'SOAP-ENC:Array',
array(),
array(
array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:DataList[]')
),
'tns:DataList'
);
$server->register("getBrugere",
// input params
array(
'someInput' => 'xsd:boolean'
),
// returns
array('return' => 'tns:DataListRs'),
'urn:bruger',
'urn:bruger#getBrugere',
'rpc',
'encoded',
'Returns a list of data'
);
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA)
? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);
?>
Hvis jeg kalder getBrugere fra mit c# program får jeg følgene exception:
unable to serialize result
I kan se mit XML udkast her:
http://ole.vivaa.dk/soap/test/index.php?wsdl
Nogen der ved hvad jeg gør galt?
Går ud fra det må være i PHP delen den er gal..
