Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Webservice y SOAP

Estas en el tema de Webservice y SOAP en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buen día amigos nuevamente por aquí, para pedirles ayuda!!! Esta vez estoy trabajando en un Webservice implementado con los módulos de Zend con SOAP y ...
  #1 (permalink)  
Antiguo 22/02/2012, 09:24
Avatar de irwinvalera  
Fecha de Ingreso: enero-2012
Ubicación: Lima, Peru
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 1
Webservice y SOAP

Buen día amigos nuevamente por aquí, para pedirles ayuda!!!

Esta vez estoy trabajando en un Webservice implementado con los módulos de Zend con SOAP y resulta que todo trabaja ok de manera local, pero cuando subo mi proyecto a un servidor, me da el siguiente error:

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://xxxxx.xxx/soap/servidor.php?wsdl' : failed to load external entity "http://xxxxx.xxx/soap/servidor.php?wsdl" in /var/www/trunk/library/Zend/Soap/Client/Common.php:51 Stack trace: #0 /var/www/trunk/library/Zend/Soap/Client/Common.php(51): SoapClient->SoapClient('http://xxxx...', Array) #1 /var/www/trunk/library/Zend/Soap/Client.php(1032): Zend_Soap_Client_Common->__construct(Array, 'http://xxxx...', Array) #2 /var/www/trunk/library/Zend/Soap/Client.php(1188): Zend_Soap_Client->_initSoapClientObject() #3 /var/www/trunk/library/Zend/Soap/Client.php(1112): Zend_Soap_Client->getSoapClient() #4 /var/www/trunk/public/soap/cliente.php(24): Zend_Soap_Client->__call('Saludame', Array) #5 /var/www/trunk/public/soap/cliente.php(24): Zend_Soap_Client->Saludame('Copstone', 'es') #6 {main} thrown in /var/www/trunk/library/Zend/Soap/Client/Common.php on line 51

He revisado en muchos foros, pero en ninguno encunetro solución, he activado todas las librerias necesarias, pero aun persiste el problema, cuál es el problema??? me urge solucionarlo gracias de antemano.
  #2 (permalink)  
Antiguo 22/02/2012, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Webservice y SOAP

Pues el error mismo te lo dice, no puede cargar el WSL, verifica que tu servidor se pueda comunicar al dominio que estas intentando cargar, ya que por eso te esta marcando ese error.
  #3 (permalink)  
Antiguo 22/02/2012, 09:48
Avatar de irwinvalera  
Fecha de Ingreso: enero-2012
Ubicación: Lima, Peru
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Webservice y SOAP

Resulta, que ingreso al archivo servidor.php?wsdl y genera el archivo con normalidad, pero el cliente me vota ese error cuando intento llamar a algun metodo que existe dentro de él. Y como te mencionaba de manera local todo esta ok, pero en el servidor no.
  #4 (permalink)  
Antiguo 22/02/2012, 09:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Webservice y SOAP

Repito, verifica que puedes cargar ese archivo en el servidor, puede ser que tu servidor tenga algún firewall que impida la comunicación al servidor que quieres cargar, no es lo mismo que lo cargues desde tu cliente que desde el mismo servidor, son dos diferentes cosas.
  #5 (permalink)  
Antiguo 22/02/2012, 10:18
Avatar de irwinvalera  
Fecha de Ingreso: enero-2012
Ubicación: Lima, Peru
Mensajes: 18
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Webservice y SOAP

Me explico mejor, los archivos cliente y servidor se encuentra en el mismo servidor, por lo cual el firewall no debería afectar estando dentro del mismo. Ahora, el problema no da al crear la conexión sino al tratar de mostrar algún método contenido dentro del archivo generado por servidor.php?wsdl

Mira este es mi código:

Código PHP:
require_once("Zend/Soap/Client.php");
$wsdl_url "http://xxxxxx.xxx/soap/servidor.php?wsdl";
$cliente = new Zend_Soap_Client($wsdl_url);

//---------------------------------------------------------------
// Saludamos en varios idiomas
//---------------------------------------------------------------
echo "<h1>Metodo Saludame</h1>";
foreach (array(
"es""en""fr""gr") as $idioma)
{
    echo 
"<strong>$idioma: </strong>";
    echo 
$cliente->Saludame("Copstone"$idioma);
    echo 
"<br/>";

y el problema me da aquí echo $cliente->Saludame("Copstone", $idioma);
  #6 (permalink)  
Antiguo 22/02/2012, 10:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Webservice y SOAP

Repito, ve la excepción, te lo dice:

SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://xxxxx.xxx/soap/servidor.php?wsdl' : failed to load external entity "http://xxxxx.xxx/soap/servidor.php?wsdl" in /var/www/trunk/library/Zend/Soap/Client/Common.php:51

Te esta diciendo que no puede cargar la entidad externa, y aunque estes haciendo una petición http a tu mismo servidor, el firewall lo puede bloquear, para probar puedes hacer algo sencillo, realiza un script que tenga esto:
Código PHP:
Ver original
  1. <?php
  2. $str = file_get_contents('http://xxxxx.xxx/soap/servidor.php?wsdl');
  3. var_dump($str);

Desde tu servidor y verifica que se puede cargar, si no puedes usar file_get_contents, tendrás que usar cURL o sockets para traer el resultado, si ninguna de esas 3 opciones funciona, es entonces problema del servidor que esta bloqueando tu petición HTTP.

Saludos.

Etiquetas: soap, webservice, zend
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.
Respuesta




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