Foros del Web » Programando para Internet » PHP »

Probar conectividad con web service Java desde Nusoap

Estas en el tema de Probar conectividad con web service Java desde Nusoap en el foro de PHP en Foros del Web. Saludos a todos, este es mi primer tema. Estoy utilizando la librería Nusoap para conectarme a un web service que está corriendo sobre Java. La ...
  #1 (permalink)  
Antiguo 06/06/2011, 10:31
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 0
Probar conectividad con web service Java desde Nusoap

Saludos a todos, este es mi primer tema.

Estoy utilizando la librería Nusoap para conectarme a un web service que está corriendo sobre Java. La conexión funciona correctamente, envío datos y recibo respuesta.

Sin embargo, mi problema es otro. Quiero manejar el error cuando el servicio está caído, en el hilo de abajo se trata el tema pero dan una solución haciendo ping o probando conectividad con el servidor:

http://www.forosdelweb.com/f18/como-saber-si-servidor-web-esta-activo-595242/

... y lo que busco no es eso, ya que sobre el servidor corren varios servicios y aplicaciones, y no necesariamente una respuesta positiva al mensaje ICMP significaría que el servicio está funcionando.

Estuve leyendo y $cliente->getError() devuelve false cuando no hay error y un String cuando si lo hay, sin embargo:

$error = $clienteSoapWsdl->getError();
if (!$error) {
algo
}else{
otro algo
}

funciona perfecto cuando hay respuesta, pero cuando no hay respuesta no hace ninguno de los dos caminos.... se salta el if-else y no puedo manejar el error....

Probé haciendo if($error == null) y siempre me dió verdadero..... también if($error == "") y tampoco resultó.... intenté con if($error != false) y nada...... no sé como agarrar el error y hacer ese "otro algo".

agradecido de antemano y cualquier ayuda será bienvenida.
  #2 (permalink)  
Antiguo 06/06/2011, 10:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 24
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Probar conectividad con web service Java desde Nusoap

Te pongo un ejemplo de como consumo yo un servicio y ya te quedas tú con lo que te haga falta:

Código PHP:
 public function setState$state )
    {
        
//Fill the args
        
$args = array('stbp'=>array('request'=>array('clientAuth'=>$this->clientAuth,'reqSetState'=>array( 'videoState'=>$state ))));
    
        
//perform the function call without parameters:
        
$answer $this->call('reqSetState'$args );

        
//check if there were any call errors, and if so stop execution with some error messages:
        
$error $this->getError();

        if (
$error)
        {
            
$this->logs[] = $this->response;
            
            if ( isset ( 
$GLOBALS["log"] ) ) $GLOBALS["log"]->append"stbClientClass->setState(), an error has occured. "$this->getError() ,"error");

            
$this->logs[] = $this->getDebug();
            
            if ( isset ( 
$GLOBALS["log"] ) )
            {
                
$errors_array $this->getDebug();
                
$GLOBALS["log"]->append"stbClientClass->setState() ".$this->getDebug(),"debug");
            }
            
print_r$this->getDebug() );
            return ( array() );
        }

        
//output the response (in the form of a multidimensional array) from the function call:
        
return $answer;
    } 
  #3 (permalink)  
Antiguo 06/06/2011, 10:45
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Probar conectividad con web service Java desde Nusoap

y try catch??


http://php.net/manual/en/language.exceptions.php
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #4 (permalink)  
Antiguo 06/06/2011, 11:14
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Probar conectividad con web service Java desde Nusoap

Código PHP:
function enviaDatosTransaccionWSDL//parámetros ) {

    
$clienteSoapWsdl = new nusoap_client('url''WSDL');

    
$error $clienteSoapWsdl->getError();

    if (
$error) {
        
$respuestaWS = array("return" => "ERROR");
    }else{
        
$respuestaWS = array("return" => "BIEN");
    }

    return 
$respuestaWS;

Gracias por las respuestas

javifranco... tu ejemplo es más completo que el mio, pero es básicamente lo mismo... en mi caso, no entra al if, por lo tanto, $respuestaWS queda vacio. ( la url es del web service abajo, por lo que necesariamente debe haber un error).

mogurbon... probé con el ejemplo 12 del link que me mandaste, pero también necesita comprobar $error dentro de un if(), y caigo en el mismo problema, no entra ni al if ni al else.
  #5 (permalink)  
Antiguo 06/06/2011, 11:42
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Probar conectividad con web service Java desde Nusoap

y metiendolo en el try directamente no jurula??


Código PHP:
Ver original
  1. try {
  2.     $error = $clienteSoapWsdl->getError();
  3. }
  4. catch (Exception $e){
  5.     var_dump($e->getMessage());
  6. }
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #6 (permalink)  
Antiguo 06/06/2011, 11:44
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Probar conectividad con web service Java desde Nusoap

Siempre las try catch son recomendables.

Saludos
Gildus
__________________
.: Gildus :.
  #7 (permalink)  
Antiguo 06/06/2011, 11:58
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Probar conectividad con web service Java desde Nusoap

Cita:
Iniciado por mogurbon Ver Mensaje
y metiendolo en el try directamente no jurula??


Código PHP:
Ver original
  1. try {
  2.     $error = $clienteSoapWsdl->getError();
  3. }
  4. catch (Exception $e){
  5.     var_dump($e->getMessage());
  6. }
No funcionó.... lo intenté, me imagino que como no es un error en que se caiga la aplicación, sigue su curso normal y devuelve nada.

Estoy probando otras combinaciones... el "prueba y error" me tiene cansado jajja... pero si doy con algo, aunque sea un parche, lo publico.

gracias
  #8 (permalink)  
Antiguo 06/06/2011, 12:34
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Probar conectividad con web service Java desde Nusoap

si se me hace que la ando defecando


deberia ser algo asi , no recuerdo bien la creacion de un cliente de nusoap, tons a la hora de la creacion del objeto es cuando se deberia hacer


Código PHP:
Ver original
  1. #la excepcion del errore debe ser al crear el cliente , ya que si no funciona debera mostrarnos por que
  2. try {
  3.     $client = new soapclient('http://rutamalevola/elwebservicemalevolo.jsp');
  4. }
  5. catch (Exception $e){
  6.     var_dump($e->getMessage());
  7. }
  8.  
  9. #el metodo $clienteSoapWsdl->getError(); no deberia existir ya que nunca se logro intanciar el objeto
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #9 (permalink)  
Antiguo 06/06/2011, 12:49
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Probar conectividad con web service Java desde Nusoap

Cita:
Iniciado por mogurbon Ver Mensaje
si se me hace que la ando defecando


deberia ser algo asi , no recuerdo bien la creacion de un cliente de nusoap, tons a la hora de la creacion del objeto es cuando se deberia hacer


Código PHP:
Ver original
  1. #la excepcion del errore debe ser al crear el cliente , ya que si no funciona debera mostrarnos por que
  2. try {
  3.     $client = new soapclient('http://rutamalevola/elwebservicemalevolo.jsp');
  4. }
  5. catch (Exception $e){
  6.     var_dump($e->getMessage());
  7. }
  8.  
  9. #el metodo $clienteSoapWsdl->getError(); no deberia existir ya que nunca se logro intanciar el objeto
jajaja son detalles nomás.... ya lo había intentado poniendo todo el código, incluida la creación del objeto y no funcionó... ahora estoy consiguiendo que me atrape el error, pero después del "call"... la idea es que sea antes para determinar si el servicio está arriba o no.... pero es super raro... todos los códigos que he visto tienen dos instancias de verificación de error (getError):
1.- después de la creación del objeto,
2.- después de verificar que no haya falla en la respuesta.

la de la creación del objeto es la que no me está dando resultados. ya por lo menos es un indicio, pero no sé como atacarlo

saludos.
  #10 (permalink)  
Antiguo 06/06/2011, 15:31
 
Fecha de Ingreso: junio-2011
Mensajes: 20
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Probar conectividad con web service Java desde Nusoap

Bueno, nada que un plan B no pueda solucionar

1.- Cree una operación en el webservice que me retorna un string con el valor "0" (Java).

2.- Copié el mismo código de la función principal de php y la renombré como "verificaEstadoWS()" que devuelve la respuesta del webservice.

3.- Primero consumo ese servicio, si recibo un "0" ejecuto el otro servicio que me importa "enviaDatosTransaccionWSDL()"

Si recibo (o no recibo) cualquier otra cosa, es que el webservice está caido o funcionando mal....

.... y listo, funciona por lo menos, puedo validar la existencia del webservice y luego hago la operación que necesito sin importar lo que getError me diga.

Como había comentado, si se me ocurría aunque sea un parche, lo publicaba.

saludos a todos y gracias por la ayuda.

Etiquetas: nusoap, webservice
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 22:27.