Вопрос по NuSOAP

sheiko

Новичок
Вопрос по NuSOAP

Я недавно использую 0.7.2 версию пакета nusoap.sf.net
Столкнулся с неожиданной проблемой - не могу принять массив на клиенте.

Здесь http://detail.phpclub.ru/article/nusoap#part_2_2 шикарно расписанно про прочие типа данных, включая структуры, но прмера с массивом нет. Официальной документации также не видно. Пробую писать сервис по аналогии с прочими типами:

Код:
class api_func {
	function api_func(){
		return $this;
	}

	function GetCategories() {
		$retval = array( 
                1, 
                2
                ); 

        return new soapval('return', 'xsd:array', $retval); 
	}
	
} 

$server->register('api_func.GetCategories',                	
	array(),	
	array('return' => 'xsd:array'),
	'urn:newapiwsdl', 
	'urn:newapiwsdl#api_func.GetCategories',    
	'rpc',                                			
	'encoded',                            			
	'Retrieve Category Hierarchy'             
);
На клиенте получаю пустой массив от:

Код:
$result = $this->client->call('api_func.GetCategories', array(), "", "newapiwsdl#api_func.GetCategories");
Типы integer, boolen, string работают без проблем

Может меня глючит по утру, я не вижу очевидной ошибки? :)

-~{}~ 06.08.05 15:00:

Разобрался. Пустой массив возвращался из-за не совсем удачной конфигурации $server->configureWSDL(..)

-~{}~ 06.08.05 15:44:

Вернее даже, следует регистрировать новый тип данных. Например:

Код:
$server->wsdl->addComplexType(
	'ArrayOfstring',
	'complexType',
	'array',
	'',
	'SOAP-ENC:Array',
	array(),
	array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'string[]')),
	'xsd:string'
);
См. подробности здесь:
http://dietrich.ganx4.com/nusoap/testbed/round2_base_server.phps
 
Сверху