Foros del Web » Programando para Internet » PHP »

Crear un Web Service con PHP

Estas en el tema de Crear un Web Service con PHP en el foro de PHP en Foros del Web. Hola a tod@s, Estoy iniciando mi proyecto final de carrera, y, como parte de él, tengo que desarrolar un servicio web con php. Ya he ...
  #1 (permalink)  
Antiguo 10/03/2012, 07:04
 
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Pregunta Crear un Web Service con PHP

Hola a tod@s,
Estoy iniciando mi proyecto final de carrera, y, como parte de él, tengo que desarrolar un servicio web con php. Ya he creado una clase con la que voy a trabajar. La idea es crear un fichero WSDL.
Primer punto ¿Creéis que esa es la mejor opción? ¿Que me recomendáis para generar el WSDL?

Segundo punto. Estoy haciendo pruebas, creando un servidor SOAP, y un cliente SOAP. He hecho pruebas usando el fichero WSDL (generado por php2wsdl) y sin fichero WSDL.
El problema es que siempre me devuelve el mismo error:
"Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\service\client.php on line 20"
Logicamente, no siempre lo devuelve en la línea 20, lo devuelve en la última línea del código.
He hecho varias pruebas con el código que he creado yo, y con varios ejemplos que he encontrado en la WEB de todo tipo, y no colsigo resolver el problema.
Incluso he parado el antivirus y el firewall por si pudiese ser ese el problema.
¿Alguien tiene idea de a que se debe ese error?
Aquí os pongo el enlace del último ejemplo que he intentado: http://es.wiki.locaweb.com/es/Utilizando_SOAP_con_PHP

Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 10/03/2012, 07:54
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 15 años, 11 meses
Puntos: 326
Respuesta: Crear un Web Service con PHP

Si tarda mucho en cargar (más de 30 segundos) te salta la limitacion del tiempo de ejecución.

Eso puedes cambiarlo en php.ini (max_execution_time)

Otra opción, es, el el "client.php", o el archivo q crees q tardará mucho, puedes poner esto al principio
Código PHP:
set_time_limit(0); 
Dónde 0 son los segundos q quieras (en caso de q sea 0, es "infinito").

Fuente: set_time_limit
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 10/03/2012, 10:07
 
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Crear un Web Service con PHP

Muchas gracias por tu ayuda, Eleazan.
He probado lo que me has dicho, pero ahora me devuelve otro error:
Fatal error: Uncaught SoapFault exception: [HTTP] Could not connect to host in C:\AppServ\www\service\client.php:17
Stack trace:
#0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://localhos...', 'urn:UserFacadeA...', 1, 0)
#1 [internal function]: SoapClient->__call('getUser', Array)
#2 C:\AppServ\www\service\client.php(17): SoapClient->getUser()
#3 {main}
thrown in C:\AppServ\www\service\client.php on line 17

Estoy intentando averiguar que significa todo esto :S
  #4 (permalink)  
Antiguo 10/03/2012, 10:58
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Crear un Web Service con PHP

Te dice que no se puede conectar con el host y te lanza una excepción. Probablemente lo estés intentando alrededor de la línea 17.

Prueba a meterlo dentro de un bloque try/catch

Sin ver el código es difícil saber qué es lo que estás haciendo.

Saludos

PD: Por cierto, a parte de seguir el tutorial que citaste, sería recomendable que le echases un vistazo a la documentación de la clase que estás usando
http://php.net/manual/es/class.soapclient.php

Última edición por SetheR; 10/03/2012 a las 11:00 Razón: enlace a doc.
  #5 (permalink)  
Antiguo 10/03/2012, 13:14
 
Fecha de Ingreso: marzo-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Crear un Web Service con PHP

Gracias Sether,
Conozco la url que me indicas, y la verdad es que me cuesta entender muchas de las cosas que ahí explica.
Te cuento que ya he resuelto el problema actualizando mi versión de php.
Ahora me funciona con el ejemplo sencillo, pero no con mi programa de verdad, aunque creo que eso ya será cuestión de seguir investigando.
¿Conoces cual es la mejor manera crear un WSDL a partir de una clase? estoy probando algunas herramientas que he encontrado, pero no acaban de funcionar.
Saludos
  #6 (permalink)  
Antiguo 10/03/2012, 17:36
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: Crear un Web Service con PHP

Así sobre la marcha se me ocurren php2wsdl (http://www.phpclasses.org/package/35...sses-code.html) o utilizar un módulo de Zend Framework (http://framework.zend.com/manual/en/...ap.server.html).

Saludos y suerte con tu trabajo.

Etiquetas: service
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 05:17.