Discussion:
Problem when calling a GWT RPC Service
abad
2009-09-04 17:44:53 UTC
Permalink
Hi i have a problem when a Call a GWT because the onSuccess method of
the AsyncCallback is executing later that the event ocurrs i find out
this doing a debug.

Here is the code of the Classes.

package co.com.argos.mgd.admon.client;

import java.util.ArrayList;

import co.com.argos.mgd.admon.client.gui.CompetenciasGrid;
import co.com.argos.mgd.admon.client.services.CompetenciasService;
import
co.com.argos.mgd.admon.client.services.CompetenciasServiceAsync;
import co.com.argos.mgd.admon.client.structures.ArrayCompetencias;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.HTML;
import com.gwtext.client.core.Position;
import com.gwtext.client.widgets.MessageBox;
import com.gwtext.client.widgets.Panel;
import com.gwtext.client.widgets.TabPanel;
import com.gwtext.client.widgets.Viewport;
import com.gwtext.client.widgets.layout.FitLayout;



public class AdmonMGDGWT implements EntryPoint {


private Panel panel = new Panel();
Panel competenciasPanel = null;
ArrayList competencias = new ArrayList();

public ArrayList getCompetencias() {
return competencias;
}

public void setCompetencias(ArrayList competencias) {
this.competencias = competencias;
}

public void onModuleLoad() {

obtenerCompetencias();
crearTabs(getCompetencias());
Panel panel = getPanel();
Viewport viewport = new Viewport(panel);



}

public void crearTabs(ArrayList c) {
CompetenciasGrid grid = new CompetenciasGrid(c);
panel = new Panel();
panel.setBorder(false);
panel.setPaddings(15);
panel.setLayout(new FitLayout());
panel.add(grid);

}

public Panel getPanel() {
return panel;
}

public void setPanel(Panel panel) {
this.panel = panel;
}

public Panel getCompetenciasPanel() {
return competenciasPanel;
}

public void setCompetenciasPanel(Panel competenciasPanel) {
this.competenciasPanel = competenciasPanel;
}

public void agregarTabs(TabPanel tab){
panel.add(tab);

}


public void obtenerCompetencias(){
AsyncCallback callback = new AsyncCallback()

{

public void onSuccess( Object result )

{

setCompetencias((ArrayList) result);

}

public void onFailure( Throwable ex )

{

MessageBox.alert( "Error", "Error while loading
data" );

}

};
CompetenciasService.Util.getInstance().getCompetencias
(callback);



}

}

And the competenciasService is

package co.com.argos.mgd.admon.client.services;

import java.util.ArrayList;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.ServiceDefTarget;

public interface CompetenciasService extends RemoteService {

public static final String SERVICE_URI = "/competencias";

public static class Util {

public static CompetenciasServiceAsync getInstance() {

CompetenciasServiceAsync instance = (CompetenciasServiceAsync) GWT
.create(CompetenciasService.class);
ServiceDefTarget target = (ServiceDefTarget) instance;
target.setServiceEntryPoint(SERVICE_URI);
return instance;
}
}
public ArrayList getCompetencias();
public void crearCompetencia(String nombre,String
grupoCompetencia,String nivelEsperado,String definicion,String
comportamientosObservables,String usuarioCreacion);
public void modificarCompetencia(String idCompetencia,String
nombre,String grupoCompetencia,String nivelEsperado,String
definicion,String comportamientosObservables,String
usuarioModificacion);
public void statusCompetencia(String idCompetencia,String
usuarioModificacion) ;
}



and the Service Implementation

package co.com.argos.mgd.admon.server;

import java.util.ArrayList;


import co.com.argos.mgd.admon.client.services.CompetenciasService;
import co.com.argos.mgd.admon.server.bl.BLCompetencia;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
* Servlet implementation class ServletCompetencias
*/
public class CompetenciasServicesImpl extends RemoteServiceServlet
implements CompetenciasService {


/**
*
*/
private static final long serialVersionUID = 1L;


public ArrayList getCompetencias() {
ArrayList competencias = new ArrayList();
competencias = BLCompetencia.instance().getCompetencias("2");
return competencias;
}

public void crearCompetencia(String nombre, String grupoCompetencia,
String nivelEsperado, String definicion,
String comportamientosObservables, String usuarioCreacion) {
BLCompetencia.instance().crearCompetencia(nombre, grupoCompetencia,
nivelEsperado, definicion, comportamientosObservables,
usuarioCreacion);

}

public void modificarCompetencia(String idCompetencia,String
nombre,String grupoCompetencia,String nivelEsperado,String
definicion,String comportamientosObservables,String
usuarioModificacion) {
BLCompetencia.instance().modificarCompetencia(idCompetencia, nombre,
grupoCompetencia, nivelEsperado, definicion,
comportamientosObservables, usuarioModificacion);

}


public void statusCompetencia(String idCompetencia,String
usuarioModificacion) {
BLCompetencia.instance().activarDesactivarCompetencia(idCompetencia,
usuarioModificacion);

}

}


Thanks for all your Help

Best Regards.

Carlos Jaramillo
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cypal Studio for GWT" group.
To post to this group, send email to cypal-studio-for-***@googlegroups.com
To unsubscribe from this group, send email to cypal-studio-for-gwt+***@googlegroups.com
For more options, visit this group at http://groups.google.com/group/cypal-studio-for-gwt?hl=en
-~----------~----~----~----~------~----~------~--~---

Loading...