Consumir serviço do webservice feito PHP através de um cliente JAVA

0 respostas
giovaniufop

eae galera, to precisando de uma ajuda.
Tenho um webservice feito em PHP com a biblioteca nuSOAP e estou tentando consumir um serviço através de um cliente feito em JAVA.
O webservice recebe o nome de uma pessoa como parametro de entrada e retorna um array com os dados da pessoa:

$server->register('readPessoa', 
	array (	'nome' => 'xsd:string'),
	array (	'nome' => 'xsd:string', 'cargo' => 'xsd:string','papel' => 'xsd:string','contato' => 'xsd:int'),
	'urn:server', 
	'urn:server#readPessoa', 
	'rpc', 
	'encoded', 
	' uma pessoa cadastrada.');

function readPessoa($nome)
{
	$pessoa = new Pessoa;
	$linha = $pessoa->readPessoa($nome);
	
	$aux = array( "nome" => $linha['nome'],"cargo"=> $linha['cargo'], "papel"=>$linha['papel'], "contato"=> $linha['contato'] );
	
	return $aux;
}

Gostaria de saber como faço pra receber esses dados e exibi-los, meu codigo java segue abaixo:

public String readPessoa(String nome) {
		// Cria um novo serviço
		Service service = new Service();
		Object [] ret;
		
		String n = "";
		// Cria uma chamada para o serviço
		Call call;
		try {
			call = (Call) service.createCall();

			// Seta a URL onde está o serviço
			call.setTargetEndpointAddress(new java.net.URL(
					"http://localhost/WebServices/index.php"));

			// seta qual função do webservice será chamada
			call.setOperationName("readPessoa");
			
			// diz que o primeiro parâmetro será o numDia
			call.addParameter("nome", XMLType.SOAP_STRING, ParameterMode.IN);
			
			call.setReturnType(XMLType.SOAP_ARRAY);

			// efetua a chamada ao webservice
			ret = new Object[]{ call.invoke(new Object[] { nome })};
			
			/**   GOSTARIA DE SABER COMO PEGO OS VALORES RETORNADO PELO SERVIÇO PARA EXIBI-LOS   */
			n= (String)ret[1];//isso aki da erro!!
			
			

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return n;
	}
Criado 30 de novembro de 2007
Respostas 0
Participantes 1