2010-02-05 12 views
13

Ho un Eclipse con Google App Engine Plugin e Google App Engine SDK 1.3.0 installato su. Ho creato un nuovo progetto web con Google App Engine SDK 1.3.0. Ora, voglio aggiungere una libreria per una sintassi avanzata JSTL nel file jsp, è EL-functors (http://el-functors.sourceforge.net). Affinché EL-funtori per pickup sua sintassi avanzata nel file JSP e compilarli per la sintassi standard di jsp, devo aggiungere un po 'ascoltatore al web.xml:Impossibile utilizzare librerie esterne per Google App Engine progetto Java

<listener> 
    <listener-class>beanface.el.functor.InstallFunctorListener</listener-class> 
</listener> 

standar.jar Inoltre, ho aggiunto, jstl.jar, el-functors-1.0.3.jar al mio percorso di build. Tuttavia, quando ho dare il via web server (utilizzando Debug con nome> Progetto Web), nel log della console, vedo questo messaggio di errore:

Initializing AppEngine server 
Feb 5, 2010 7:22:45 AM com.google.apphosting.utils.jetty.JettyLogger warn 
WARNING: Could not instantiate listener beanface.el.functor.InstallFunctorListener 
java.lang.ClassNotFoundException: beanface.el.functor.InstallFunctorListener 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at ........ 
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:421) 
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1035) 
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:783) 
    at com.google.gwt.dev.DevMode.main(DevMode.java:275) 

Credo che ci dovrebbe essere alcune cause portano alla libreria non viene caricato . Quando vengo in guerra/WEB-INF/lib, non riesco a vedere standard.jar, jstl.jar ed el-functors.1.0.3.jar sovra; solo i vasi google per motori di app vengono distribuiti.

Qual è il problema c'è, come posso risolvere questo?

risposta

24

è necessario copiare il vaso richiesto (s) nella cartella lib/WEB-INF/manualmente.

ho affrontato un problema simile durante l'avvio di costruire con app-motore. Dopo alcune ricerche, sono giunto alla conclusione che è l'unico modo per farlo funzionare.

piacerebbe sapere se sbaglio :)

+1

Sì, questo funziona, ma in realtà. è il * solo * modo per farlo funzionare costruzione No-style Eclipse? percorso di gestione? guerra/WEB-INF/lib è mooolto * * primitivo! –

+0

Questo funziona anche per me, ma mi piacerebbe sapere il motivo per cui dobbiamo mettere il barattolo sotto WEB-INF/lib, anche se ci si è già il file di classe in classpath? Forse la modalità di sviluppo di gwt onora solo la classe/jar in WEB-INF ? – Mike

+0

Funziona anche per me. (Libreria GSON) – ehsun7b

1

Sto usando strumento App chiave per copiare automaticamente vasetti in/WEB-INF/lib. Funziona solo se non hai classi contrassegnate da @Entity in quel jar.

5

V'è un facile da usare alternativa al coronamento manuale dei vasi - soluzione rapida

Vai a Marcatori View, trovare avvertimento adeguato (la seguente voce percorso di classe" ...), selezionare 'quick fix' dal contesto menu e fare clic su "copia .. per/WEB-INF/lib e aggiornamento classpath fare riferimento a queste jar"

+0

questo funziona molto bene per me, grazie! – arty

Problemi correlati