Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/12/2009, 20:06
Avatar de jam1138
jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: WSDL no se despliega

Cita:
Iniciado por solinem Ver Mensaje
Si ubico los 3 archivos en el mismo servidor y directorio todo funciona bien, pero si el cliente lo ubico en otro servidor, aparece un mensaje de error:
¿Exactamente el mismo código en el cliente?, osea, ¿haciendo referencia a su propia IP? ...

Primero, dices que si intentas abrir directamente el archivo wsdl desde el navegador se intenta descargar, eso no es correcto. Mira en la configuración de apache, debería tener como DefaultType el valor text/plain.

Segundo, en tu WSDL como punto final prueba colocar la URL con la IP de tu servicio, esto es, cambiar esto:
Código XML:
Ver original
  1. <soap:address location='http://localhost/ws/soap-server.php'/>
por esto:
Código XML:
Ver original
  1. <soap:address location='http://10.132.44.205/ws/soap-server.php'/>
... o donde se encuentre el archivo PHP. Ahí hay una inconsistencia, en el cliente dices el WSDL está la carpeta raíz del servidor, pero el archivo PHP está dentro de ws/ ... corrígelo según tus valores.

Por último, en tu cliente pasa como opciones esa misma URL y el namespace que declaras en tu WSDL. Esto es, algo como:

Código PHP:
Ver original
  1. <?php  
  2.   $client = new SoapClient("http://10.132.44.205/catalog.wsdl",
  3.                            array('location' => 'http://10.132.44.205/ws/soap-server.php',
  4.                                  'uri' => 'urn:localhost-catalog'));
  5.   $catalogId='catalog2';
  6.   $response = $client->getCatalogEntry($catalogId);
  7.   echo $response;

Ah, y un detalle: en tu servidor no utilices las llaves de cierre de PHP (?>), evita espacios que puedan ser enviados sin querer, y en tu cliente asegúrate no tengas nada antes de <?php que según el mensaje de error se produce en la línea 5, cuando según tu código en esa línea se hace el echo ... el error debería producirse en la llamada a la función. Si en efecto no tienes nada antes de <?php, quizá tu editor esté agregando el BOM ... ¿qué editor estás usando? ...

Un saludo
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"