Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/10/2010, 16:51
agareta
 
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