Help Java + php

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

[quote=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[/quote]

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.

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(‘http://10.0.0.2:8080/axis/Servico.jws’);
// Faz a chamada para o webmetodo(QueryByCep)
$Result = $obClient->call(‘soma’, $Param);

to usando asssim

[quote=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(‘http://10.0.0.2:8080/axis/Servico.jws’);
// Faz a chamada para o webmetodo(QueryByCep)
$Result = $obClient->call(‘soma’, $Param);

to usando asssim[/quote]
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.

$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

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.

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

[quote=fabioebner]Fatal error: Call to undefined function: __call() in C:\Arquivos de Programas\Apache Group\Apache2\htdocs\webservices\client_java.php on line 17
[/quote]
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.

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??

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?