Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Davi RJ

Php - Webservice Nusoap -Error

Recommended Posts

Boa Tarde a Todos!

Preciso de uma ajuda com uma certa urgência!
Já fiz um outro post aqui sobre isso e acabei fechando.

 

 

Não sou muito acostumado a programar em PHP, e caiu no meu colo um projeto de Webservice.
Só que Estão exigindo que use o padrão deles que é o NUSOAP. :unsure:

 

Eu gostaria muito de modificar, pois pelo que me foi informado aqui mesmo o nusoap está meio descontinuado.

Mas de qualquer forma fiz um teste para ver se funcionava o que estou querendo e estou recebendo um erro que não estou entendendo muito bem, alguém pode me ajudar?

Segue o meus server.php

<?php
require_once
'lib/nusoap.php';

$server->wsdl->addComplexType('cadastrar', 'complexType', 'struct', 'all','',
array(
'empresa' =>array ('name'=>'empresa','type'=>'xsd:string')
,'nome' =>array ('name'=>'nome','type'=>'xsd:string')
,'email' =>array ('name'=>'email','type'=>'xsd:string')
,'ddd' =>array ('name'=>'ddd','type'=>'xsd:string')
,'tel' =>array ('name'=>'tel','type'=>'xsd:string')
,'msg' =>array ('name'=>'msg','type'=>'xsd:string')
)
);

$server->register('cadastrar',
array('dados'=>'tns:cadastro'),
array
('return'=>'xsd:string'),
$namespace,
$namespace.'#cadastrar',
'rpc',
'encoded',
'' );


function cadastrar($dados){
return $dados['empresa'];
}

$request = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($request);
?>

E Meu cliente.php

<?php
if ((string)$_GET['action'] == 'get_data') {
// includes nusoap classes
require('lib/nusoap.php');
// $client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl&debug=1', 'wsdl');
$client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl', 'wsdl');
$dados = array(
'empresa' => $_POST['empresa'],
'nome' => $_POST['nome'],
'email' => $_POST['email'],
'ddd' => $_POST['ddd'],
'tel' => $_POST['tel'],
'msg' => $_POST['msg']
);
$result = $client->call('cadastrar', array('cadastro'=> $dados));
echo $result;
// check for errors
if (!$client->getError()) {
// print results
print '<h1>Current data for: ' . $l_aParam[0]
. ':</h1><ul><li>DEGREES: ' . $l_stResult['degrees']
. '°C</li><li>FORECAST: ' . $l_stResult['forecast']
. '</li></ul>';
}
// print error description
else {
echo '<h1>Error: ' . $client->getError() . '</h1>';
}
}

// output search form
print '
<form name="input" action="'
.$_SERVER['PHP_SELF'].'?action=get_data" method="POST">
Your empresa: <input type="text" name="empresa"> <br>
Your nome: <input type="text" name="nome"> <br>
Your email: <input type="text" name="email"> <br>
Your ddd: <input type="text" name="ddd"> <br>
Your tel: <input type="text" name="tel"> <br>
Your msg: <input type="text" name="msg"> <br>
<input type="submit" value="Search">
</form>
'
;
?>


Mas sempre que eu envio algum valor me apresenta o seguinte erro:

Error: wsdl error: XML error parsing WSDL from http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/server.php?wsdl on line 2: Not well-formed (invalid token)

Alguém pode me ajudar?
Ou ser for o caso, se alguem tem uma solução melhor que essa, tipo usando outro tipo de serviço e puder me dar uma ajuda aqui... eu iria agradecer muito!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha esse erro linha 2.. oke tem nela é a chamada do nusoap... o caminho e o nome do arquivo estão corretos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa...

Olha esse erro linha 2.. oke tem nela é a chamada do nusoap... o caminho e o nome do arquivo estão corretos?

Sim está, pelo menos está na pasta lib...

Mas aparentemente ele está reclamando do formato do xml

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu tenho um sistema utilizando nosuap, mas está em casa.. de noite eu vou ver e passo como utilizei certinho e a versão..

 

Nele eu tive uns problemas que demorei pra resolver nas pesquisas, um tipo de variável... nesse meu está funcionando certinho.. dai depois posto aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow cara! Valeu mesmo!

Mudei um pouco o código, para ficar o mais simples possível e parou de dar o erro, porém não apresenta nenhum resultado.... Olha isso:

 

servidor.php

<?php

include 'lib/nusoap.php';


$servidor = new nusoap_server();
$servidor -> configureWSDL('urn.Servidor');


$servidor->register('exemplo', 
                 array('nome'=>'xsd:string' ,
                       'idade'=>'xsd:string'),
                 array('retorno'=>'xsd:string'),
                 'urn:Servidor.exemplo',
                 'rpc',
                 'encoded',
                 'Processo Seletivo' ); 




function exemplo ($nome, $ideade){
    return($nome.'-->'.$idade);
}


$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$servidor->service($HTTP_RAW_POST_DATA);


 $handle = fopen('log.xml', 'w');
 fwrite($handle, $HTTP_RAW_POST_DATA);
 fclose($handle);
?>

E cliente.php:

<?php
       require('lib/nusoap.php'); 
       $client = new nusoap_client('http://webservice.zeus.com.br/soap/fiergs/processo_seletivo/servidor.php?wsdl', 'wsdl');
       
       $dados = array(
               'nome' => 'Davi',
               'idade' => 39 );


       $result = $client->call('exemplo', $dados); 
       
       echo utf8_encode($result);
       print ('Resuldato ==>'.  $result);
       


 ?>
Seria alguma coisa de configuração ou versão do PHP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tinha umas moages do client no meu caso tb não trazer nada quando testava ele na mesma máquina que estava o server..

 

tipo server na sua máquina e vc executando o client na sua máquina.. eu colocava o server na NET em um servidor meu e testava o client na minha maquina chamando akele server na net...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.