2012-01-16 13 views
23

Continuo a ricevere il seguente errore dopo aver inserito i file richiesti nel mio percorso di build su Eclipse. Sto lavorando a un'applicazione Spring World Hello MVC. Sono in esecuzione Eclipse Helios per gli sviluppatori Java EE:Avviso eclissi: XXXXXXXXXXX.jar non verrà esportato o pubblicato. Runtime ClassNotFoundExceptions potrebbe risultare

Jan 16, 2012 1:25:42 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /SpringMVCTutorial threw load() exception 
java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415) 
    at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397) 
    at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1062) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

Ho provato a destra cliccando il server e facendo clic su "pulito". Faccio clic con il pulsante destro del mouse sull'applicazione, quindi su "Crea percorso", "Configura percorso di creazione" e inserisco i file .jar corretti nella libreria; tuttavia, ancora non li riconosce come dipendenze. Cosa mi manca?

ho cercato il consiglio presentato in: eclipse helios: tomcat project - jar will not be exported or published. runtime ClassNotFoundExceptions may result

  1. Fare clic destro sul vostro progetto web
  2. Fare clic su Proprietà
  3. Select Java EE modulo Dipendenze
  4. Fare clic sulla scheda Web biblioteche
  5. Aggiungi vasi esterni (se il barattolo è fuori dal tuo progetto). Verrà aggiunta una voce in Jar/Module, assicurati di fare clic sulla casella di controllo (selezionata).

Il problema è che quando seleziono "Proprietà clic" non ho la possibilità di fare clic sulle dipendenze Java EE Module così come non appare. Ho scaricato tutti gli strumenti Java EE in più e ancora non riesco a trovarlo.

+1

Stai usando Maven per gestire le dipendenze? –

+0

No. Ho pensato che se avessi fatto tutto con Eclipse, non l'avrei fatto anch'io. Pensavo avessi bisogno solo di Maven se non avessi usato un IDE? – Mike

+0

Lo capisco adesso. . . Ho scaricato i plugin Maven per Eclipse. Grazie per l'avviso :) – Mike

risposta

27

Ok. Quindi l'ho capito. . .

Per farlo funzionare correttamente, devo "rilasciare e trascinare" i file che voglio nel mio percorso di classe/dipendenze nel mio file WEB-INF/lib.

Funziona in questo modo.

Per qualche ragione quando cerco di farlo nel modo giusto

percorso di generazione -> Configura costruire il percorso -> vasi esterni

semplicemente non prende.

Il trucco è che devo inserire i file nella cartella Librerie app Web e l'unico modo per farlo (che posso vedere :) è "fare clic e rilascia" nel file WEB-INF/lib.

In questo modo viene automaticamente visualizzato nelle librerie di app Web.

+0

Immagino che se non usassi Maven, inserirò tutti i jar nella directory lib e li aggiungerò al classpath da lì. –

+0

Sembra una "funzione" di Eclipse - l'ho incontrata anche nella versione 4.2 (Juno). – mjn

+3

Se costruisci con Maven: Ignora It in Eclipse per sempre: Windows -> Preferenze -> Convalida -> disattiva "Validatore di dipendenze del percorso di classe" (almeno :) – brabenetz

3

fare clic destro sul progetto in project explorer scheda, e build path --> configure build path, -->external jars

aggiungere tutti i vasi che si desidera.

+0

Il problema è che è quello che ho fatto, ma ottengo ancora gli errori di cui sopra. I vasi che aggiungo rimuovono i miei errori di compliation, ma ora i miei errori di dipendenza. Vai a capire! – Mike

9

Durante l'aggiunta di nuovi file jar, ho ricevuto due messaggi su Problems Tab di Eclipse: un errore e un avvertimento. Ho risolto questo problema solo combinando tutte le soluzioni precedenti con un passaggio aggiuntivo.Ecco come ho risolto:

  1. "Drop e trascinare" i file che voglio nel mio classpath/dipendenze nel mio file WEB-INF/lib;
  2. Fare clic con il tasto destro del mouse sul progetto nella scheda Package Explorer e build path --> configure build path -->external jars, aggiungendo i file desiderati;
  3. Eclipse riavviata;
  4. Selezionare Project --> Clean.... Il mio sistema è configurato per la compilazione automatica, quindi dopo questo passaggio il messaggio di errore era scomparso, ma l'avviso XXXXXXXXXXX.jar will not be exported or published. Runtime ClassNotFoundExceptions may result rimaneva;
  5. Fare clic con il tasto destro del mouse sul messaggio di avviso ->Quick Fix;
  6. Selezionare l'opzione Mark the associated raw classpath entry as a publish/export dependency. (come figura in basso) Quick fix for warning message
+0

ha funzionato. Grazie! – Shankar