Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GWT et Vaadin Java Discussion :

cannot read property ' ' of undefined - GWT Java


Sujet :

GWT et Vaadin Java

  1. #1
    Membre du Club
    cannot read property ' ' of undefined - GWT Java
    Bonjour à tous,

    J'ai créé un formulaire de saisie et je souhaiterais effectuer la mise à jour de ma table. J'utilise GWT 2.7, Java et eclipse ainsi que le MVP. Dnas mon presenter, je fais appel à un service du serveur mais lorsque le programme l'appellen j'ai cette erreur " Cannot read property "updateSensorFamilyServ" of undefined.
    En autres, il considère que mon service est indéfini.
    Voici le code de mon presenter:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    @Presenter(view = SensorFamilyEditionView.class)
    public class SensorFamilyEditionPresenter extends BasePresenter<ISensorFamilyView, SensorFamilyEventBus> 
    //extends BasePresenter<IsensorFamilyEditionView, MainEventBus> 
    {
    	public void updateSensorFamily(SensorFamilyDTO mockSensorFam) {
     
    		service.updateSensorFamilyServ(mockSensorFam, new AsyncCallback<Void>() {
     
    			@Override
    			public void onSuccess(Void result) {
    				eventBus.closeDialog();
    			}
     
    			@Override
    			public void onFailure(Throwable caught) {
    				Toast.makeText("erreur d'enregistrement", Toast.Length.LONG)
    				.show();
    			}
    		});


    et voici le code de mon service:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class SensorFamilyServiceImpl extends RemoteServiceServlet implements
    SensorFamilyService {
    	@Override
    	public void updateSensorFamilyServ(SensorFamilyDTO sensorFam) {
    		if(sensorFam.getId() <0 || SensorFamily.queryById(sensorFam.getId()) == null) {
    			SensorFamily sensorFamily = new SensorFamily();
    			sensorFamily.fillFromDTO(sensorFam);
    			sensorFamily.create();
    		}
    		else {
    			SensorFamily sensorFamily  =  SensorFamily.queryById(sensorFam.getId());
    			sensorFamily.fillFromDTO(sensorFam);
    			sensorFamily.update();
    		}
    	}
    	}

    La classe de mon service s'intitule SensorFamilyServiceImpl et implémente l'interface SensorFamilyService dont voici le code:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @RemoteServiceRelativePath("sensorfamily.rpc")
    public interface SensorFamilyService extends RemoteService{
     
    SensorFamilyDTO getSensorFamily(String name);
     
    	void updateSensorFamilyServ(SensorFamilyDTO sensorFam);
     
    	List<SensorFamilyDTO> getSensorFamilies();
     
    	SensorFamilyDTO getSensorFamilyFromSensor(SensorDTO sensor);
     
    	List<String> getSensorFamiliesString();
     
     
    }
    et qui a permis la création de SensorFamilyServiceAsync.
    Je ne sais pas ce que j'ai oublié pour que cela fonctionne. Monservice est bien défini dans web.xml:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	<servlet>
    		<servlet-name>capteursService</servlet-name>
    		<servlet-class>com.assystem.amsta.server.SensorFamilyServiceImpl</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>capteursService</servlet-name>
    		<url-pattern>/amsta/sensorfamily.rpc</url-pattern>
    	</servlet-mapping>

    Avez-vous une idée d'où cela pourrait-il venir? Qu'est-ce que j'ai oublié de faire pour que cela fonctionne?
    Merci encore pour votre aide.

  2. #2
    Membre du Club
    Oubli de @Inject
    Bonjour,

    Désolée, j'ai posté trop vite. J'avais juste oublié l'annotation "@Inject" lors de la déclaration de mon service.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    	@Inject
    	private SensorFamilyServiceAsync service;


    Enfin, peut être que cela aidera les distraits comme moi!

###raw>template_hook.ano_emploi###