PHP Web Services - Encontrando Erros


Apenas para definição e apresentação:

Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web services são componentes que permitem � s aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria “linguagem”, que é traduzida para uma linguagem universal, o formato XML.

Qual o problemas dos problemas com erros?

O grande problema quando ocorre um erro, como por exemplo a falta de um “;” no final da linha de código é encontrar o que ocorreu, já que na maioria dos exemplos que encontrei na internet ficam com a página em branco quando ocorre uma situação inesperada como essa. Exemplo:

Serviço

<?php
require_once(”nusoap.php”);

function retornaUsuarios($parametro) {
$nome = “Andrey Pedro Lefkum”;
return $nome;
}

$objetoSoapServer = new soap_server();
$objetoSoapServer->configureWSDL(’SMSSoap’,’urn:SMSSoap’);

/* Registra o serviço para que possa ser encontrado pelo outro sistema que irá acessa-lo */
$objetoSoapServer->register(’retornaUsuarios’);

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ”;

$objetoSoapServer->service($HTTP_RAW_POST_DATA);
?>

Acesso ao Serviço

<?php
require_once(”nusoap.php”);

$parametros = array(’usuarioCodigo’ => 5);

$clienteSoap = new soapclient(”http://localhost/webservice/soap.php”);
$resultado = $clienteSoap->call(’retornaUsuarios’,$parametros);

if($clienteSoap->fault) {
echo “Erro ao acessar o WEBSERVICE<br />Erro: “.$clienteSoap->faultstring;
}
else {
echo “Nome Usuário: “.$resultado;
}
?>

Então quando acesso o “Acesso ao serviço” caso falte um “;” no serviço a página fica toda em branco!

O que fazer?

Execute o diretamente o script do serviço “retornaUsuarios” e chame na mesma página a função como o exemplo abaixo:

<?php
require_once(”nusoap.php”);

function retornaUsuarios($parametro) {
$nome = “Andrey Pedro Lefkum”;
return $nome;
}

$objetoSoapServer = new soap_server();
$objetoSoapServer->configureWSDL(’SMSSoap’,’urn:SMSSoap’);

/* Registra o serviço para que possa ser encontrado pelo outro sistema que irá acessa-lo */
$objetoSoapServer->register(’retornaUsuarios’);

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ”;

$objetoSoapServer->service($HTTP_RAW_POST_DATA);

$objeto = retornaUsuarios(1);
echo $objeto->faultstring;
echo $objeto;

?>

Observe o código que está em negrito! Quando executar o script do serviço ele vai auto chama-lo através da primeira linha que está em negrito acima e retornará:

Em caso de erro - Objeto;
Em caso de execução OK - retorna o valor, que no caso acima é “Andrey Pedro Lefkum”.

Caso retorne o valor é simples, basta imprimi-lo na tela, mas quando retornar o objeto?

Observe a segunda linha do código em negrito acima: echo $objeto->faultstring;
Imprime o valor faultstring que está atribuido ao objeto.

Somente quem desenvolver um Web Services, vai saber do que disse acima! =D

Pessoal, caso tenham qualquer dúvida, pode deixar um post que retornarei com certeza, e com toda satisfação e ajudar! ;)

Andrey.

3 Responses to “PHP Web Services - Encontrando Erros”

  1. Emanuel Says:

    Olá Andrey,
    Estou iniciando meus estudos em web services e gostaria que me ajudasse. Criei os arquivos como está descrito no seu artigo, mas o web service não está funcionando. Será que isso pode ser algum problema de configuração do php.ini?
    abraços

  2. Andrey Pedro Lefkum Says:

    Olá Emanuel!
    Se possível me manda o código que verificarei o que pode estar ocorrendo, porém duvido muito que seja no php.ini

    Até mais
    aguardo sua resposta!

  3. Emanuel Says:

    Olá Andrey, eu andei olhando e o php.ini está padrão. e o código está igual ao postado. Só alterei o seu nome pelo meu…

Leave a Reply


This is a free Wordpress template provided by Mathew Browne | Web Design | SEO