Comunidad de diseño web y desarrollo en internet online

Error al llamar más de una vez a un servicio

Citar            
MensajeEscrito el 24 Sep 2009 02:27 pm
Hola a todos, esoy haciendo un programa con Java+Flex y tengo un fallo que espero que alguien de vosotros me pueda ayudar a solucionar. La cosa es que desde Flex llamo a un servicio de Java, todo bien hasta ahí pero mi fallo surge cuando quiero llamarlo dentro de la misma función una y otra vez, para obtener datos de distintos metodos de ese servicio.

Yo lo que quiero es llamar al servicio obtener 5 datos diferentes y meterlos en un array. Lo que pasa es que quiero hacer eso 20 veces. Esto es, quiero hacer 20 veces array.addItem para luego con estos datos llenar un DataGrid.

Es dificil de explicar por lo que os pongo el código y si tenéis alguna duda me preguntais.

Código ActionScript :

public function onInfoResult(event:ListEvent):void {
         
         _service.addEventListener(ResultEvent.RESULT, tablaLoadedResult);
         _service.addEventListener(FaultEvent.FAULT, tablaLoadedError);
                        
         //var selectedNode:XML = Tree(event.target).selectedItem as XML;
         
         for(var i:Number=0;i<20;i++)
         {      
            _service.getSubject(i,'INBOX');
            _service.getFrom(i,'INBOX');
            _service.getDate(i,'INBOX');
            _service.getSize(i,'INBOX');
            _service.getPriority(i,'INBOX');
         }
        }
               
      public function tablaLoadedResult(event:ResultEvent):void {
            var subject:String = String(_service.getSubject.lastResult.toString());
           var from:String= String(_service.getFrom.lastResult);
           var date:String= String(_service.getDate.lastResult);
           var size:Number = _service.getSize.lastResult;
           var priority:String = String(_service.getPriority.lastResult);
           var count:Number = Number(_service.getFolderCount.lastResult);
           array.addItem({leido:"T",subject:subject,from:from,date:date,prioridad:priority,adjunto:"A"});
           }                           
            
         public function tablaLoadedError(event:FaultEvent):void{
         textArea.text = "Fallo : " + event.message;
      }


_service es mi servicio, el que lo consigo bien, lo se porque he conseguido traerme un dato, pero no los veinte.

El objetivo de esto es ir llenando la tabla a medida que llegan los datos, y no todos juntos.

Un saludo y gracias

Por zakabalt

48 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2009 07:45 am
Comentar que lo que hace este código es llenar por cada i++ una columna y no toda la fila. Esto es hace esto.

Subject null null null null
Subject From null null null
Subject From Date Null null
.........
Subject2 From2 null null null

..........

Lo que yo quiero es:

Subject From Date Priority
Subject2 From2 Date2 Priority2
....
Subject20 From20, Date 20 Priority20

Supongo que el error esta al hacer la petición, pero como no se muy bien como funciona eso no doy con la solución.

Por zakabalt

48 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2009 08:00 am
No tengo ni idea, aun así me atrevo a sugerir que en lugar de un único _service, Tengas varios.

Claro que deberás cambiar tu función tablaLoadedResult. Así

Código ActionScript :

public function tablaLoadedResult(event:ResultEvent):void { 
    var _service=event.target  //<--uso una variable para referirme al target
    //así ya no tenemos que cambiar nada de código
   .....
}

igualmente en la función, onInfoResult

Código ActionScript :

onInfoResult(event:ListEvent) {
   var _service=event.target
   ....
}

Vuelo a aclarar que NO TENGO NI IDEA, pero creo que el problema va por ahí

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2009 08:14 am
No entiendo muy bien lo que quieres decir. La verdad que nunca he trabajado con target, pero la cosa es que tengo una variable global que se llama _service del tipo Service. Que es el servicio que obtengo desde java y lo utilizo en varios componentes.

He probado tu código y si creo otra variable no tengo mi servicio y tampoco puedo asignarle el event.target a mi servicio. Es muy posible que te haya entendido mal, podrías completar el código un poco más o explicarme un poco como deberá de hacer eso del target?

Gracias

Un saludo

Por zakabalt

48 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.