Help Java + php

9 respostas
fabioebner

Pessoal… desenvolvi um webservice em java. ta rodando perfeito… agora preciso… chamar esse web service atravez do PHP alguem sabe como eu posso fazer isso??

obrigado

9 Respostas

rodrigo_corinthians

fabioebner:
Pessoal… desenvolvi um webservice em java. ta rodando perfeito… agora preciso… chamar esse web service atravez do PHP alguem sabe como eu posso fazer isso??

obrigado

Se vc tiver a versão 5 do Php fica fácil fácil. :slight_smile:
http://br2.php.net/manual/pt_BR/ref.soap.php

Basicamente com essas linhas vc já chama a criança. rs

<?php
$soapClient = new SoapClient("http://servidor:porta/aplicacao/seuwebservice.wsdl");

$soapClient->__soapCall("método", "argumentos são opcionais");
?>

Segue um pequeno tutorial que eu tinha criado um tempo atrás, talves o ajude.

Se você tiver o Php4 use uma lib do Pear(http://pear.php.net).

Sem mais, Rodrigo.

fabioebner

entao rodrigo eu fiz exatamente isso q vc fez… mas o problema e o seguinte… qdo eu passo apenas um aparametro ele executa normalmente… dai eu mexi no meu web service para receber 2 parametros… nao da certo ele mostra o seguinte erro

Error: Server.userException: No such operation ‘soma’

e so eu mudar o numero de parametros…

$Param = array(1,2);// array((int) $_POST[‘cep’] );

$obClient  = new soapclient(‘<a href="http://10.0.0.2:8080/axis/Servico.jws">http://10.0.0.2:8080/axis/Servico.jws</a>’);

// Faz a chamada para o webmetodo(QueryByCep)

$Result = $obClient->call(‘soma’, $Param);

to usando asssim

rodrigo_corinthians

fabioebner:
entao rodrigo eu fiz exatamente isso q vc fez… mas o problema e o seguinte… qdo eu passo apenas um aparametro ele executa normalmente… dai eu mexi no meu web service para receber 2 parametros… nao da certo ele mostra o seguinte erro

Error: Server.userException: No such operation ‘soma’

e so eu mudar o numero de parametros…

$Param = array(1,2);// array((int) $_POST[‘cep’] );

$obClient  = new soapclient(‘<a href="http://10.0.0.2:8080/axis/Servico.jws">http://10.0.0.2:8080/axis/Servico.jws</a>’);

// Faz a chamada para o webmetodo(QueryByCep)

$Result = $obClient->call(‘soma’, $Param);

to usando asssim


Esse erro é por causa do caminho do WebService, o correto seria.

$obClient  = new soapclient('http://10.0.0.2:8080/axis/Servico.jws?wsdl');

Com o “?wsdl” no final, no Java não precisa mas no Php sim.

E nos parâmetros você coloca a quantidade q o seu método precisa.

Sem mais, Rodrigo.

fabioebner
$Param = array(1,2);// array((int) $_POST['cep'] );  
$obClient  = new soapclient('http://10.0.0.2:8080/axis/Servico.jws?wsdl'); 
// Faz a chamada para o webmetodo(QueryByCep) 
$Result = $obClient->call('soma', array(1,3));

rodrigo deu o mesmo erro. e tenho certeza q existe e classe… se eu chamar ele no browser assim 10.0.0.2:8080/axis/Servico.jws?method=some&valor1=1&valor2=3 ele me retorna o valor certinho

rodrigo_corinthians

Epa epa epa, vc disse.

Olha o nome do método “some” na url acima, no Php vc está chamando como “soma” e outra a função precisa ter os __ no começo, o script correto ficaria assim.

<?php
$Param = array(1,2);// array((int) $_POST['cep'] );
$obClient = new SoapClient('http://10.0.0.2:8080/axis/Servico.jws?wsdl');  // Faz a chamada para o webmetodo(QueryByCep)
$Result = $obClient->__call('some', $Param); 
?>

Esse pessoal que vem do Java no Php programa sem vontade nenhuma. huahauha

Sem mais, Rodrigo.

fabioebner

rodrigo a funca e a soma mesmo eu q escrive errado… mas continua dando o mesmo erro… e se eu ponho o __ antes do call ele fala q nao existe a funcao

Fatal error: Call to undefined function: __call() in C:\Arquivos de Programas\Apache Group\Apache2\htdocs\webservices\client_java.php on line 17

rodrigo_corinthians

fabioebner:
Fatal error: Call to undefined function: __call() in C:\Arquivos de Programas\Apache Group\Apache2\htdocs\webservices\client_java.php on line 17

Esse erro acontece porq vc nem compilou a extensão do soap corretamente, olhe aqui(http://br2.php.net/manual/pt_BR/ref.soap.php).

Lembrando q esse exemplo que passei no primeiro post vale para o Php5, no 4 não funciona.

Sem mais, Rodrigo.

fabioebner

estou usando o php 5… e se eu colocar o __call ele da o mesmo erro… e tbm estou usando uma classe chama NOSOAP.php…

ta certo neh??

F

Tenho que fazer um webservice cliente.Me passaram uma url http://200.149.12.124/scripts/ArenaWebService.dll/login
, tenho que acessar essa url passando o usuario e a senha, mais não estou sabendo como fazer isso. Alguem pode me dar uma luz?

Criado 29 de junho de 2005
Ultima resposta 13 de mar. de 2008
Respostas 9
Participantes 3