Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Errore nell'esecuzione di un progetto GWT

    Ciao ragazzi sono un neofita del mondo GWT e ho un problema quando vado ad eseguire un progetto GWT realizzato da me.Il progetto è stato realizzato tramite Eclipse 3.5 Galileo.La versione di GWT installata è la 2.4

    Quando vado a svolgere GWT compile ho il seguente errore:

    Compiling module com.progettonm.ProgettoNmGwt
    Finding entry point classes
    [ERROR] Unable to find type 'com.progettonm.client.ProgettoNmGwt'

    [ERROR] Hint: Previous compiler errors may have made this type unavailable
    [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

    Quando faccio partire la il progetto GWT ho il seguente errore:

    16:31:18.215 [TRACE] [progettonmgwt] Finding entry point classes
    16:31:18.236 [ERROR] [progettonmgwt] Unable to find type 'com.progettonm.client.ProgettoNmGwt'
    16:31:18.274 [ERROR] [progettonmgwt] Hint: Previous compiler errors may have made this type unavailable
    16:31:18.314 [ERROR] [progettonmgwt] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly

    16:31:18.331 [ERROR] [progettonmgwt] Failed to load module 'progettonmgwt' from user agent 'Mozilla/5.0 (Windows; U; Windows NT 6.1; it; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10' at 127.0.0.1:50157

    Ringrazio anticipatamente per l'aiuto

  2. #2
    Puoi spiegare un pò meglio? Come lo hai sviluppato? E' un nuovo progetto? Non ti funziona solo il GWT compile?

  3. #3
    Ciao a tutti.Il progetto è un nuovo ed è stato sviluppato tramite le GWT.Non funziona sia GWT Compile che quando vado ad eseguire il progetto tramite eclipse.Il progetto si chiama Networ Monitor e serve per monitorare lo scambio di informazioni tra PC che sono collegati su una stessa rete internet.Per semplicità di progettazione è stato assodata che i tre client girino sulla stessa macchina.Quindi abbiamo una classe chiamata Server Centralizzato che rappresenta il server del progetto ed il suo compito è quello di fare da tramite tra i client che si scambieranno le informazioni tra loro e il client amministrativo che permette all'utente di scegliere la funzionalità da svolgere e di visualizzare i risultati della funzionalità scelta.Il server centralizzato va a registrare su una hashTable l'indirizzo IP di ogni client distribuito che si registra.Per semplicità il numero massimo di client che si possono registrare è pari a 3.Abbiamo gia realizzato tale progetto con le swing è funziona tutto alla prefezione,ora non riesco a far partire questa applicazione con le GWT.La prima cosa da fare nel progetto è far partire il server centralizzato che si mette in attesa che i tre client distribuiti si registrano.Quindi dopo si fanno partire 3 client distribuiti per la registrazione.Alla termine dellla registrazione dell'ultimo client distribuito il server chiude la server socket per la registrazione dei distribuiti ed apre quella per attendere la connessione da parte del client amministrativo(utente) al quale dovrà fornire tutti i client distribuiti registrati all'utente e permettere all'utente di scegliere la funzionalità.Per vedere se era un errore di mappatura dell servelt ho scritto il metodo di che interagisce con il server Centralizzato nell'interfaccie GreetingService e GreetingServiceAsync che vengono fornite alla creazione del progetto,ma il problema sussiste ancora.Come posso inviarvi il codice realitivo alla parte GWT?.
    Immagini allegate Immagini allegate

  4. #4
    Questa,nel progetto GWT, è la classe principale Java che mi deve permettere la visualizzazione di una pagina Html dove ci sono 8 bottoni che mi rappresentanto i test da effettuare.Non è completa per tutti i bottoni ma solo per il primo,infatti sto testando il primo test e quello in cui mi faccio restituire tutti i client distribuiti.Per i primi 3 test più la funzionalità con la quale mi faccio restituire i client distribuiti,premendo il bottone deve partire la chiamata RPC che mi permette di collegarmi verso il server che mi restituisce una hashtable con tutti i client registrati e visualizzarli tramite una finestra.Poi nel primo test si può scegliere dai 3 client solo uno per effettuare il test,mentre per il secondo e terzo test si devono scegliere 2 client.I client scelti si mandano al server tramite un messaggio che indica anche il test sceltoPer i restanti test una volta premuto il bottone di selezione del test tocca solamente mandare
    al server un messaggio con il valore che indica il test che si è scelto.

    codice:
    
    package com.progettonm.client;
    
    
    
    
    
    
    
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.user.client.ui.Button;
    import com.google.gwt.user.client.ui.Image;
    import com.google.gwt.user.client.ui.RootPanel;
    import com.progettonm.client.handler.HandlerVisualizzatoreClientRegistrati;
    
    /**
     * Entry point classes define <code>onModuleLoad()</code>.
     */
    public class ProgettoNmGwt implements EntryPoint {
    	
    	public void onModuleLoad() {	
    		
    		final GreetingServiceAsync serviziOfferti = GWT
    		.create(GreetingService.class);
    		final RootPanel rootP =RootPanel.get("contenitore");
    		
    	
    
    
    
    	
    	Image immPrimoTest = new Image((String) null);
    	rootP.add(immPrimoTest, 40, 24);
    	immPrimoTest.setSize("131px", "110px");
    	
    	
    	Button bottonePrimoTest = new Button("Informazioni PC");
    	
    	/*Qui abilitiamo il bottone*/
    	
    	 
        bottonePrimoTest.setEnabled(true);
        bottonePrimoTest.setFocus(true);
    	/*Qui aggiungo l'handler che fa riferimento al momento in cui,premendo il bottone,vengono restituiti tutti i client
    	 * dist registrati.Questo sarà uguale per il primo,secondo e terzo bottone*/
    
    	rootP.add(bottonePrimoTest, 40, 156);
    	bottonePrimoTest.setSize("131px", "28px");
    	
    	Image immSecondoTest = new Image((String) null);
    	rootP.add(immSecondoTest, 210, 24);
    	immSecondoTest.setSize("131px", "110px");
    	
    	Button bottoneSecondoTest = new Button("Velocità Tcp");
    	
    	/*Qui abilitiamo il bottone*
    	 *   
    	 */
    	
    	bottoneSecondoTest.setEnabled(true);
        bottoneSecondoTest.setFocus(true);
    	rootP.add(bottoneSecondoTest, 210, 156);
    	bottoneSecondoTest.setSize("131px", "28px");
    	
    	/**
    	 * Qui immagine e bottone terzo test
    	 * 
    	 */
    	Image immTerzoTest = new Image((String) null);
    	rootP.add(immTerzoTest, 380, 24);
    	immTerzoTest.setSize("131px", "110px");
    	
    	Button bottoneTerzoTest = new Button("Velocità Udp");
    	
    	/*Qui abilitiamo il bottone*/
    	
    	 
        bottoneTerzoTest.setEnabled(true);
        bottoneTerzoTest.setFocus(true);
    	rootP.add(bottoneTerzoTest, 380, 156);
    	bottoneTerzoTest.setSize("131px", "28px");
    	
    	/**
    	 * 
    	 * Immagine e bottone quarto test
    	 * 
    	 */
    	
    	Image immQuartoTest = new Image((String) null);
    	rootP.add(immQuartoTest, 550, 24);
    	immQuartoTest.setSize("131px", "110px");
    	
    	
    	Button bottoneQuartoTest = new Button("Carico Distribuito");
    	
    	/*Qui abilitiamo il bottone*/
    	
    	 
        bottoneQuartoTest.setEnabled(true);
        
        bottoneQuartoTest.setFocus(true);
        
       rootP.add(bottoneQuartoTest, 550, 156);
    	bottoneQuartoTest.setSize("131px", "28px");
    	
    	/**
    	 * 
    	 * Immagine e bottone quinto test
    	 * 
    	 */
    	Image immQuintoTest = new Image((String) null);
    	rootP.add(immQuintoTest, 40, 231);
    	immQuintoTest.setSize("131px", "110px");
    	
    		Button bottoneQuintoTest = new Button("Carico Centralizzato");
    		
    		/*Qui abilitiamo il bottone*/
    		
    		 
    	    bottoneQuintoTest.setEnabled(true);
    	    bottoneQuintoTest.setFocus(true);
    	    
    	    
    	rootP.add(bottoneQuintoTest, 40, 363);
    	bottoneQuintoTest.setSize("131px", "28px");
    /**
     * Immagine e bottone sesto test.
     * 	
     */
    	
    	Image immagineSestoTest = new Image((String) null);
    	rootP.add(immagineSestoTest, 210, 231);
    	immagineSestoTest.setSize("131px", "110px");
    	
    	
    	Button bottoneSestoTest = new Button("Carico ad Anello");
    	/*Qui abilitiamo il bottone*/
    	
      bottoneSestoTest.setEnabled(true);
        bottoneSestoTest.setFocus(true);
        
    	rootP.add(bottoneSestoTest, 210, 363);
    	bottoneSestoTest.setSize("131px", "28px");
    	
    	/**
    	 * Immagine e bottone settimo test
    	 * 
    	 */
    	
    	
    	Image immSettimoTest = new Image((String) null);
    	rootP.add(immSettimoTest, 380, 231);
    	immSettimoTest.setSize("131px", "110px");
    	
    	
    		Button bottoneSettimoTest = new Button("Carico Ripetuti");
    		/*Qui abilitiamo il bottone*/
    		
    		 
    	    bottoneSettimoTest.setEnabled(true);
    	    bottoneSettimoTest.setFocus(true);
    		
    	rootP.add(bottoneSettimoTest, 380, 363);
    	bottoneSettimoTest.setSize("131px", "28px");
    	
    	
    	/**
    	 * 
    	 * Immagine e bottone Client Reg
    	 * 
    	 */
    	
    	Image immClientReg = new Image((String) null);
    	rootP.add(immClientReg, 550, 231);
    	immClientReg.setSize("131px", "110px");
    	
    
    	
    
    	Button bottoneClientReg = new Button("Client Registrati");
    	/*Qui abilitiamo il bottone*/	 
        bottoneClientReg.setEnabled(true);
        bottoneClientReg.setFocus(true);
    
        HandlerVisualizzatoreClientRegistrati handler=new HandlerVisualizzatoreClientRegistrati(bottoneClientReg, serviziOfferti);
      
    	
    	rootP.add(bottoneClientReg, 550, 363);
    	bottoneClientReg.setSize("131px", "28px");
    	bottoneClientReg.addClickHandler(handler);
    
    
    	
    	
    
    						
    	}
    
    }

  5. #5
    Questa è la classe
    Questa è la interfaccia GreetingService
    codice:
    package com.progettonm.client;
    
    import java.util.Hashtable;
    
    import com.google.gwt.user.client.rpc.RemoteService;
    import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
    import com.progettonm.server.idclient.*;
    import com.progettonm.server.infopc.*;
    /**
     * The client side stub for the RPC service.
     */
    @RemoteServiceRelativePath("greet")
    public interface GreetingService extends RemoteService {
    	Hashtable<IdentificatoreClient, InformazioniPC> greetServer() throws IllegalArgumentException;
    }

  6. #6
    Questa è GreetingServiceAsync


    codice:
    package com.progettonm.client;
    
    import java.util.Hashtable;
    
    import com.google.gwt.user.client.rpc.AsyncCallback;
    import com.progettonm.server.idclient.IdentificatoreClient;
    import com.progettonm.server.infopc.InformazioniPC;
    
    /**
     * The async counterpart of <code>GreetingService</code>.
     */
    public interface GreetingServiceAsync {
    	void greetServer(AsyncCallback<Hashtable<IdentificatoreClient, InformazioniPC>> callback)
    			throws IllegalArgumentException;
    }

  7. #7
    Questa è la classe handler per il primo,secondo,terzo e ottavo bottone con il quale appaiono i client distribuiti:


    codice:
    package com.progettonm.client.handler;
    
    
    
    import java.util.*;
    
    import javax.swing.*;
    
    import com.google.gwt.event.dom.client.ClickEvent;
    import com.google.gwt.event.dom.client.ClickHandler;
    import com.google.gwt.user.client.rpc.AsyncCallback;
    import com.google.gwt.user.client.ui.Button;
    
    import com.progettonm.client.GreetingServiceAsync;
    import com.progettonm.client.gui.FinestraClientDistRegistrati;
    import com.progettonm.server.infopc.InformazioniPC;
    import com.progettonm.server.idclient.*;
    
    public class HandlerVisualizzatoreClientRegistrati implements ClickHandler {
    private	GreetingServiceAsync serviziOfferti;
    	private Button bottone;
    	public HandlerVisualizzatoreClientRegistrati (Button bottone,GreetingServiceAsync serviziOfferti){
    		
    		this.bottone=bottone;
    	}
    	
    		/**
    		 * Fired when the user clicks on the sendButton.
    		 */
    		public void onClick(ClickEvent event) {
    			RichiestaClientReg();
    		}
    		
    
    
    	
    
    		/**
    		 *  metodo richiamato in seguito ad un evento di tipo click
              *
    		 */
    		private void RichiestaClientReg() {
    			// il bottone Send viene disabilitato
    
    			bottone.setEnabled(false);
    			
    			serviziOfferti.greetServer(new AsyncCallback<Hashtable<IdentificatoreClient, InformazioniPC>>() {
    						public void onFailure(Throwable caught) {
    							/**
    							 *Qui devo decidere cosa ritornare nel caso in cui la chiamata asincrona fallisce. 
    							 */
    					
    							String errore="La chiamata verso il server è fallita";
    							
    						JOptionPane messaggioErrore=new JOptionPane(errore );
    						
    						}
    
    						
    
    						@Override
    						public void onSuccess(
    								Hashtable<IdentificatoreClient, InformazioniPC> clientRegistrati) {
    							
    						/**
    						 * Se la chiamata ha succeso devo far comparire una finestra con i client registrati.
    						 * Quindi mi devo creare un oggetto FinestraClientDistRegistrati e passargli come attributo
    						 * l'Hashtable che mi ritorna la chiamata asincrona.
    						 * 	
    						 */
    						
    						FinestraClientDistRegistrati registrati=new FinestraClientDistRegistrati(clientRegistrati);	
    							
    							
    						}
    	
    	
    	
    
    			});
    		
    		}
    		
    }

  8. #8
    Questa classe qui rappresenta l'implementazione di GreetingService e si trova nel package server del progetto GWT.

    codice:
    package com.progettonm.server;
    
    import java.io.IOException;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.net.InetSocketAddress;
    import java.net.Socket;
    import java.util.Enumeration;
    import java.util.Hashtable;
    
    import com.progettonm.client.GreetingService;
    import com.progettonm.server.idclient.IdentificatoreClient;
    import com.progettonm.server.infopc.InformazioniPC;
    import com.progettonm.server.messaggio.MessTabellaClientDist;
    import com.progettonm.shared.FieldVerifier;
    import com.google.gwt.user.server.rpc.RemoteServiceServlet;
    
    /**
     * The server side implementation of the RPC service.
     */
    @SuppressWarnings("serial")
    public class GreetingServiceImpl extends RemoteServiceServlet implements
    		GreetingService {
    
    	public Hashtable<IdentificatoreClient, InformazioniPC> greetServer() throws IllegalArgumentException {
    		/*Come prima cosa mi devo collegare al server.*/
    		/*
    		 * Qui viene creata la socket che permette al cilent amministrativo di
    		 * connettersi al server centralizzato.Lui deve collegarsi alla server Socket con numero di porta 8004 poiche e quella
    		 * la serverSocket addetta all'accettazione delle connessioni da parte dei client amministrativi. 
    		 * Il metodo ritorna il numero di porta del client amministrativo,se tale progetto deve funzionare
    		 * su più macchine allora mi farò tornare l'identificatore client, il quale ci è utile nei successvi
    		 * metodo per creare le socket.
    		 */
    		/*Va dentro un metodo chiamato selezione scelta.*/
    	     Socket cac=null;
    	     
    		  try {
    
    			
    			InetSocketAddress indirizzoServer = new InetSocketAddress(
    					"localhost", 8004);
    			 cac = new Socket();
    			cac.connect(indirizzoServer);
    		
    		  
    		  }
    		  
    		  catch (Exception e) {
    		e.printStackTrace();
    		}
    			System.out.println("Connessione con il server creata:");
    
    			/*
    			 * Qui vengono presi gli output ed input stream del socket i quali
    			 * servono per mandare informazioni,nel nostro caso messaggi, al
    			 * server.Ecco perchè utilizziamo gli Object stream
    		 */
    			ObjectOutputStream outCa=null;	
    			ObjectInputStream inCa=null;
    			
    	try {
    
    
    
    		 outCa = new ObjectOutputStream(cac.getOutputStream());
    	 inCa= new ObjectInputStream(cac.getInputStream());
    			
    	} 
    
    	catch (Exception e) {
    	e.printStackTrace();
    	}
    
    			
    		
    			
    			System.out.println("Creati gli stream che mi permettono di comunicare con il server.");
    	/*Devo leggere il la tabella dei distributi dal server e stamparla a video. */
    			
    	Object messaggioTabellaClientD=null;		
    
    		try {
    			messaggioTabellaClientD=inCa.readObject();
    		} catch (IOException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		} catch (ClassNotFoundException e1) {
    			// TODO Auto-generated catch block
    			e1.printStackTrace();
    		}
    		/*Ora controllo se il messaggio ricevuto è il messaggio MessTabellaClientDist che contiene
    		 * la tabella con i client distributi.*/
    		Hashtable<IdentificatoreClient, InformazioniPC> tabellaDistribuiti=null;
    		
    		if(messaggioTabellaClientD instanceof MessTabellaClientDist){
    			MessTabellaClientDist tabellaClientD= (MessTabellaClientDist) messaggioTabellaClientD;
    			/*Stampo l'hashtable*/
    	     	 tabellaDistribuiti = tabellaClientD.getHashtableCD();
    			
    			
    	           /*
    	           * qui creo i 2 oggetti Enumeration che contengo le informazioni
    	           * presenti nella tabella*/
    		
    		
    		
    	  Enumeration chiavi = tabellaDistribuiti.keys();
    	    Enumeration informazioni = tabellaDistribuiti.elements();
    
    	     /*
    	      * Qui stampo a video le informazioni chiave valore della
    	     * tabella*/
    
    	       while (chiavi.hasMoreElements()
    	 		&& informazioni.hasMoreElements()) {
    
    	        System.out.println("Chiave:"+ (IdentificatoreClient) chiavi.nextElement());
    	         System.out.println("Info:" + informazioni.nextElement());
    
    	              }
    	       System.out.println("Visualizzazione avvenuta con successo!");
    		
    		    
    		}
    		
    		
    		
    		return tabellaDistribuiti;
    			
    }
    }

  9. #9
    Ma non lo lanci in hosted mode tramite eclipse?
    Dall'errore non si capisce molto che sta succedendo, ma quello che si nota è che va in errore sulla classe ProgettoNmGwt.java, che dovrebbe essere l'EntryPoint dell'applicazione.
    L'errore:
    [ERROR] Unable to find type 'com.progettonm.client.ProgettoNmGwt'
    ti sta dicendo che non trova tale classe. Se non hai modificato niente del progetto iniziale fatto con Eclipse, dovresti avere anche un file ProgettoNmGwt.gwt.xml, giusto? In questo file è dichiarato l'EntryPoint. Se è dichiarato correttamente, allora significa che l'eccezione viene lanciata da qualche altra classe chiamata da ProgettoNmGwt.java, diversamente da come specifica l'errore.
    Cmq, io ti consiglio innanzitutto di lanciarlo con Run as->Web Application da Eclipse, e vedere se ti stampa qualche altro errore nella console, perchè così è impossibile capire.

  10. #10
    Ma non lo lanci in hosted mode tramite eclipse? Dall'errore non si capisce molto che sta succedendo, ma quello che si nota è che va in errore sulla classe ProgettoNmGwt.java, che dovrebbe essere l'EntryPoint dell'applicazione. L'errore: [ERROR] Unable to find type 'com.progettonm.client.ProgettoNmGwt' ti sta dicendo che non trova tale classe. Se non hai modificato niente del progetto iniziale fatto con Eclipse, dovresti avere anche un file ProgettoNmGwt.gwt.xml, giusto? In questo file è dichiarato l'EntryPoint. Se è dichiarato correttamente, allora significa che l'eccezione viene lanciata da qualche altra classe chiamata da ProgettoNmGwt.java, diversamente da come specifica l'errore. Cmq, io ti consiglio innanzitutto di lanciarlo con Run as->Web Application da Eclipse, e vedere se ti stampa qualche altro errore nella console, perchè così è impossibile capire.
    L'ho fatto partire con Run as -> Web Application da Eclipse e nella console non mi stampa nessuno errore

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.