Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Giullyanny

soap usando nusoap

Recommended Posts

Bom dia amigos, estou tentando usar o nusoap para criar um servidor soap, meu arquivos:

 

servidor.php

require_once("lib/nusoap.php");  // Lib do nusoap

$serv = new nusoap_server();

$serv->configureWSDL("servidor.exemplo", "urn:servidor.exemplo");
$serv->wsdl->schemaTargetNamespace = "urn:Servidor";

$serv->register(array(
    "exemplo",
    array("nome" => "xsd:string", "idade" => "xsd:string"),
    array("return" => "xsd:string"),
    "",
    "urn:Servidor.exemplo#exemplo",
    "rpc",
    "encoded",
    "Apenas um exemplo"
));

function exemplo($nome, $idade)
{
    echo $nome . " - " . $idade;
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : "";
$serv->service($HTTP_RAW_POST_DATA);

cliente.php

require_once("lib/nusoap.php");  // Lib do nusoap

$cli = new nusoap_client("http://faculdadealianca.edu.br/agenda/servidor.php?wsdl");

$param = array(
    "nome" => "Eduardo Giullyanny",
    "idade" => "31"
);


$return = $cli->call("exemplo", $param);

$error = $cli->getError();
if ($error){
    echo "<p>{$error}</p>";
}

echo $cli->debug();

echo "<pre>Resultado: ";
print_r(utf8_encode($return));

exit;
echo utf8_encode("Resultado: ".$r);

Estou usando a versão 0.9.5 do nusoap e esta aparecendo o seguinte erro quando executo o seguinte comando:

$error = $cli->getError();
if ($error){
    echo "<p>{$error}</p>";
}

o erro é

 

SOAP-ENV:Client: Operation 'exemplo' is not defined in the WSDL for this service

Resultado: 

 

 

Eu não entendi o pq não esta encontrando a função "exemplo"

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhando o WSDL, não existem nenhuma operação com o nome "exemplo". Utilize o software SoapUI para validar as interações.

Outro detalhe, nusoap é uma biblioteca desenvolvida para o PHP 4. Migre para a biblioteca SOAP do PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Windows:

 

Normalmente já vem com a DLL (php_soap.dll), basta ativar no php.ini:

extension=php_soap.dll

Lunix:

 

você pode instalar através do package manager, por exemplo Debian (Ubunto é baseado em Debian):

apt-get install php_soap

No Red Hat (CentOS e Fedora são baseados em RHEL) você utilizar o yum no lugar:

yum install php-soap

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.