Foros del Web » Programando para Internet » PHP »

Problemas con SOAP y PHP 5

Estas en el tema de Problemas con SOAP y PHP 5 en el foro de PHP en Foros del Web. Buenas, estoy desarrollando un interface de comunicación entre un php y un web service. Tengo problemas a la hora de componer el codigo de llamada ...
  #1 (permalink)  
Antiguo 16/10/2010, 16:51
 
Fecha de Ingreso: octubre-2010
Ubicación: Monzon
Mensajes: 9
Antigüedad: 14 años, 1 mes
Puntos: 0
Problemas con SOAP y PHP 5

Buenas, estoy desarrollando un interface de comunicación entre un php y un web service.
Tengo problemas a la hora de componer el codigo de llamada a las disitintas funciones, he estado algún tiempo mirando el manual de PHP 5 y SOAP pero no me aclaro, acudo a ustedes porque ya no sé que hacer con este tema.

Espero indicar claramente cual es mi problema.

Bien el el manual de uso de este web service pone lo siguiente:

Cada operación en la plataforma tiene dos mensajes SOAP: uno de petición (request) y otro de respuesta (response). Hasta aqui todo correcto.

El WSDL es http://www.xxxxx.net/demo/soa/services/InformationEngine?wsdl

El listado completo de los identificadores y de sus
descripciones se obtienen siempre desde el webservice InformationEngine con las siguientes operaciones:

Obtención de los distintos tipos de regímenes alimenticios.
Petición: GetBoardsTypes
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getBoardTypes xmlns="http://soa.valadis.com">
<login>
<lang xmlns="">en</lang>
<password xmlns="">password</password>
<user xmlns="">user</user>
</login>
</getBoardTypes>
</soapenv:Body>
</soapenv:Envelope>

Mas o menos entiendo todo, bien pasamos al plato fuerte (mi codigo php, en el cual tengo los problemas).

Código PHP:
$lang="es";
$usuario="monzon.xml";
$pass="monzon.xml";    
$client = new SoapClient('http://www.xxxxx.net/demo/soa/services/InformationEngine?wsdl');
var_dump($client->__getFunctions());
echo 
"<hr>";
echo 
"Hasta aqui todo correcto no da errores y devuelve todas las funciones del web service";
echo 
"aqui tengo los problemas";
$response $client->__soapCall('GetBoardsTypes',array('login' => array('lang'=>$lang'password'=>$pass'user'=>$usuario ))); 
Me devuelve un error el servidor:
Fatal error: Uncaught SoapFault exception: [Client] Function ("GetBoardsTypes") is not a valid method for this service in /var/www/vhosts/entrayviaja.com/httpdocs/prueba/phpinfo.php:37 Stack trace: #0 /var/www/vhosts/entrayviaja.com/httpdocs/prueba/phpinfo.php(37): SoapClient->__soapCall('GetBoardsTypes', Array) #1 {main} thrown in /var/www/vhosts/entrayviaja.com/httpdocs/prueba/phpinfo.php on line 37.

¿Podeís ayudarme con este problema?, ya no se que hacer, seguro estoy haciendo algo mal

Si quereis podeis ver un ejemplo en

[URL="http://www.entrayviaja.com/prueba/phpinfo.php"]www.entrayviaja.com/prueba/phpinfo.php[/URL].

Espero ser claro en mi cuestión y gracias de antemano
  #2 (permalink)  
Antiguo 24/11/2010, 15:00
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 17 años, 11 meses
Puntos: 8
Respuesta: Problemas con SOAP y PHP 5

Por que o pruebas primero autenticando el usuario al momento de instancial el objeto SoapClient
Código PHP:
Ver original
  1. $client = new SoapClient("some.wsdl", array('login'          => "UsuarioMonzon",
  2.                                             'password'       => "PasswordMonzon"));

y posteriormente en el llamado a la funcion estableces el filtro necesario
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #3 (permalink)  
Antiguo 24/11/2010, 15:55
 
Fecha de Ingreso: octubre-2010
Ubicación: Monzon
Mensajes: 9
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problemas con SOAP y PHP 5

He realizado lo que tu me dices pero optengo es otra salida

El codigo quedaria

Código PHP:
$client = new SoapClient($servicio,array('login'=>array('lang' => 'es' ,'password' => 'monzon.xml''user' => 'monzon.xml')));

$result $client->getHotels(array('filter'=>array('region' => 2))); 
el resultado es:

Código PHP:
Fatal errorUncaught SoapFault exception: [ClientSOAP-ERROREncodingobject hasn't 'login' property in /var/www/vhosts/entrayviaja.com/httpdocs/v2/prueba1.php:56 Stack trace: #0 [internal function]: SoapClient->__call('getHotels, Array) #1 /var/www/vhosts/entrayviaja.com/httpdocs/v2/prueba1.php(56): SoapClient->getHotels(Array) #2 {main} thrown in /var/www/vhosts/entrayviaja.com/httpdocs/v2/prueba1.php on line 56 

Etiquetas: php5, services, soap
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 15:15.