2012-06-29 9 views
6

Sto cercando di eseguire un barattolo, gwt-codeserver.jar, in OSX.7, con il comandoImpostazione del percorso di classe Java (per la modalità super-dev)

java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar" -jar /sdk/gwt-2.5.0.rc1/gwt-codeserver.jar com.activegrade.TeacherView 

Il comando non riesce con:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gwt/core/ext/TreeLogger 
Caused by: java.lang.ClassNotFoundException: com.google.gwt.core.ext.TreeLogger 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    ... 

Ma gwt-dev.jar contiene la definizione per com.google.gwt.core.ext.TreeLogger, quindi ho concluso che non sto impostando correttamente il classpath qui.

Sto impostando correttamente il percorso di classe? Il file jar è sicuramente il vaso giusto ed è sicuramente in quella posizione. Come posso diagnosticare ulteriormente?

risposta

2

Potrebbe essere la fonte del problema il this? "Quando si utilizza l'opzione -jar, il file JAR è l'origine di tutte le classi utente e le altre impostazioni del percorso della classe utente vengono ignorate."

1

Si può usare come seguire ..

java -cp ".:/sdk/gwt-2.5.0.rc1/gwt-dev.jar:/sdk/gwt-2.5.0.rc1/gwt-codeserver.jar" com.activegrade.TeacherView 
7

Ho la CodeServer esecuzione come uno strumento esterno in Eclipse (avvertimento - si devono ancora server di file HTML in qualche modo, che non ho ancora fatto, ma sembra che il server dei codici sia in esecuzione). Per configurare il CodeServer come strumento esterno in Eclipse,

0) Ricordare che è necessario aggiornare anche il file module.gwt.xml per consentire i contrassegni dei libri in modalità Super Dev e abilitare le mappe di origine per il debug. Aggiungi questi "Mi piace" al tuo file module.gwt.xml.

<!-- enable the SuperDevMode book marklets --> 
<add-linker name="xsiframe"/> 
<set-configuration-property name="devModeRedirectEnabled" value="true"/> 

<!-- enable source maps --> 
<set-property name="compiler.useSourceMaps" value="true" /> 

1) Aprire la finestra di dialogo Configurazioni strumenti esterni/strumenti esterni; questo è sotto il menu 'Esegui' di livello superiore in Windows.

2) Creare una nuova configurazione selezionando 'Programma' nell'elenco a sinistra, quindi premere il pulsante 'Nuovo' (sembra un documento). Assegna un nome alla configurazione nella finestra di dialogo.

3) Il percorso del file java.exe va nella casella "Posizione". È possibile utilizzare il pulsante 'Esplora file system' per individuarlo se non si conosce il percorso.

4) Ho lasciato vuota la directory di lavoro. Non sono sicuro che questo sia importante; sembra funzionare senza di essa. Qualcuno là fuori sa per certo se questo dovrebbe essere impostato?

5) La maggior parte del lavoro nella casella "Argomenti:". Fornirai un argomento per il percorso della classe che includerà il percorso di gwt-dev.jar, gwt.user.jar, gwt-codeserver.jar e alla tua directory di origine. Quindi fornirai un -jar e un argomento per gwt-codeserver.jar e la classe CodeServer da eseguire, quindi fornirai gli argomenti a CodeServer. Lo romperò;

5a) -cp "elenco separato da virgole di percorsi di classe, circondato da virgolette". Per rendere più portatile la definizione del tuo strumento, usa eclipse "Varaibles" per calcolare i percorsi relativi all'installazione, in particolare ho utilizzato "workspace_loc" per i percorsi relativi all'area di lavoro (come la directory src) e "eclipse_home" per i percorsi di gwt SDK . roba come GWT-user.jar (perché ho installato l'SDK nella cartella plugin Eclipse) Qui è la mia parte classpath;

-cp "${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-user.jar;${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-dev.jar;${workspace_loc:\GWTFractionTest\war\WEB-INF\lib\gwtquery-1.1.0.jar};${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-codeserver.jar" 

5b) la prossima è il nome della classe che java.exe dovrebbe funzionare.Questa è la classe CodeServer;

com.google.gwt.dev.codeserver.CodeServer 

5c) L'argomento successivo è CodeServer. Il primo è il percorso diretto verso src. Per me, questo è un percorso relativo all'area di lavoro;

-src "${workspace_loc:\GWTFractionTest\src}" 

5d) Infine, il percorso del modulo (il percorso di classe al file gwt.xml) Qui è mia;

com.conceptua.fractiontest.FractionTest 

Ecco la mia lista completa di argomenti;

-cp "${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-user.jar;${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-dev.jar;${workspace_loc:\GWTFractionTest\war\WEB-INF\lib\gwtquery-1.1.0.jar};${eclipse_home}plugins\gwt-2.5.0.rc1\gwt-2.5.0.rc1\gwt-codeserver.jar" com.google.gwt.dev.codeserver.CodeServer -src "${workspace_loc:\GWTFractionTest\src}" com.conceptua.fractiontest.FractionTest 

6) Selezionare il pulsante "Esegui" per eseguire il CodeServer. Quando eseguo questo nella console;

workDir: C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp 
binding: user.agent=safari 
binding: compiler.useSourceMaps=true 
binding: locale=en 
Compiling module com.conceptua.fractiontest.FractionTest 
    Validating units: 
     Ignored 72 units with compilation errors in first pass. 
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors. 
    Computing all possible rebind results for 'com.google.gwt.useragent.client.UserAgentAsserter' 
     Rebinding com.google.gwt.useragent.client.UserAgentAsserter 
     Checking rule <generate-with class='com.google.gwt.editor.rebind.SimpleBeanEditorDriverGenerator'/> 
      [WARN] Detected warnings related to 'com.google.gwt.editor.client.SimpleBeanEditorDriver'. Are validation-api-<version>.jar and validation-api-<version>-sources.jar on the classpath? 
      Specify -logLevel DEBUG to see all errors. 
      [WARN] Unknown type 'com.google.gwt.editor.client.SimpleBeanEditorDriver' specified in deferred binding rule 
    Compiling 1 permutation 
     Compiling permutation 0... 
     Source Maps Enabled 
    Compile of permutations succeeded 
Linking into C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp\com.conceptua.fractiontest.FractionTest\compile-1\war\fractiontest; Writing extras to C:\Users\Ezward\AppData\Local\Temp\gwt-codeserver-6942784883227417581.tmp\com.conceptua.fractiontest.FractionTest\compile-1\extras\fractiontest 
    Link succeeded 
    Compilation succeeded -- 58.257s 
Compile completed in 60831 ms 
2012-07-01 12:37:03.184::INFO: Logging to STDERR via org.mortbay.log.StdErrLog 
2012-07-01 12:37:03.185::INFO: jetty-6.1.x 

The code server is ready. 
Next, visit: http://localhxst:9876/ 
2012-07-01 12:37:03.274::INFO: Started [email protected]:9876 

io non sono sicuro perché ho le iniziali '72 Unità con compilation errori ma sembra di continuare a compilare ed eseguire il server con successo.

7) A questo punto, è necessario immettere l'URL di CodeServer specificato in Chrome. Riceverai una pagina che indica che il CodeServer è in esecuzione e puoi trascinare gli opuscoli del libro sulla barra dei segnalibri;

GWT Code Server 
Drag these two bookmarklets to your browser's bookmark bar: 
Dev Mode On Dev Mode Off 
Visit a web page that uses one of these modules: 
fractiontest 
Click "Dev Mode On" to start development mode. 

8) Il passaggio successivo è ottenere il file html per eseguirlo. Apparentemente ha bisogno di essere servito da un server web separato. Sto ancora lavorando a quella parte.

Ed

2

ho sprecato un sacco di tempo a cercare di farlo funzionare. Ho provato a seguire le meravigliose istruzioni di Ezward ma il mio setup è probabilmente un po 'diverso e non ha funzionato per me. Ci sono molti pezzi mobili e ogni errore causa tonnellate di eccezioni NullPointer, StackOverflow e UnableToComplete.

L'unico insieme di istruzioni che ha funzionato per me l'ho trovato a http://blog.daniel-kurka.de/2012/07/mgwt-super-dev-mode.html (blog Daniel Kurka). Spero che possa aiutare qualcun altro che è bloccato con la modalità GWT Super Dev come me.

1

Aveva lo stesso problema. Questo è ciò che mi ha aiutato:

java -cp "./gwt-codeserver.jar:./gwt-dev.jar" com.google.gwt.dev.codeserver.CodeServer 

È possibile aggiungere l'help in quanto tale: uscita

java -cp "./gwt-codeserver.jar:./gwt-dev.jar" com.google.gwt.dev.codeserver.CodeServer --help 

Would:

CodeServer [-bindAddress address] [-port port] [-workDir dir] [-src dir] [module] 

where 
    -bindAddress The ip address of the code server. Defaults to 127.0.0.1. 
    -port   The port where the code server will run. 
    -workDir  The root of the directory tree where the code server willwrite compiler output. If not supplied, a temporary directorywill be used. 
    -src   A directory containing GWT source to be prepended to the classpath for compiling. 
and 
    module  The GWT modules that the code server should compile. (Example: com.example.MyApp) 

e poi basta impostare la directory -src e la nome del modulo

1

Sono stato in grado di risolvere questo problema aggiungendo gwt-user.jar al classpath oltre a gwt-dev.jar. La modalità super dev GWT instructions dice che potrebbe essere necessario aggiungere gwt-user.jar.

Problemi correlati