2011-12-20 7 views
7

Sto cercando di rintracciare un problema di configurazione nel mio ambiente tomcat. I nostri server di produzione eseguono un'installazione di tomcat e leggono la guerra da un'installazione NFS condivisa.Tomcat 6 non sta caricando i file da WEB-INF/lib

Tuttavia, quando provo la stessa guerra con una casella autonoma (con la loro configurazione), visualizzo l'errore qui sotto.

Ciò che è interessante è che se decomprimo tutti i vasi in WEB-INF/lib in WEB-INF/classi, questo errore scompare.

Quindi, sembra che qualcosa stia impedendo all'app di caricare il percorso WEB-INF/lib, ma non riesco a trovare le eventuali impostazioni di tomcat che causerebbero questo, perché sta rilevando le app e configurazione, solo non i barattoli inclusi.

Qualche idea?

GRAVI: Errore durante la configurazione dell'applicazione ascoltatore di classe org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener a org.apache.catalina.loader .WebappClassLoader.loadClass (WebappClassLoader.java:1387) all'indirizzo org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1233) all'indirizzo org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:3786) all'indirizzo org.apache.catalina.core.StandardContext.start (StandardContext.java:4342) all'indirizzo org.apache.catalin a.core.ContainerBase.addChildInternal (ContainerBase.java:791) all'indirizzo org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:771) all'indirizzo org.apache.catalina.core.StandardHost.addChild (StandardHost. java: 525) all'indirizzo org.apache.catalina.startup.HostConfig.deployDescriptor (HostConfig.java:627) all'indirizzo org.apache.catalina.startup.HostConfig.deployDescriptors (HostConfig.java:553) in org.apache. catalina.startup.HostConfig.deployApps (HostConfig.java:488) all'indirizzo org.apache.catalina.startup.HostConfig.start (HostConfig.java:1149) all'indirizzo org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig. java: 311) presso org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:117) presso org.apa che.catalina.core.ContainerBase.start (ContainerBase.java:1053) all'indirizzo org.apache.catalina.core.StandardHost.start (StandardHost.java:719) all'indirizzo org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1045) all'indirizzo org.apache.catalina.core.StandardEngine.start (StandardEngine.java:443) all'indirizzo org.apache.catalina.core.StandardService.start (StandardService.java:516) presso org. apache.catalina.core.StandardServer.start (StandardServer.java:710) a org.apache.catalina.startup.Catalina.start (Catalina.java:578) a sun.reflect.NativeMethodAccessorImpl.invoke0 (metodo natale) a sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) a sun.reflect.DelegatingMethodAccessorImpl.invoke (Dele gatingMethodAccessorImpl.java:25) a java.lang.reflect.Method.invoke (Method.java:597) a org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:288) a org.apache. catalina.startup.Bootstrap.main (Bootstrap.java:413) dic 20, 2011 4:20:38 PM org.apache.catalina.core.StandardContext listenerStart SEVERE: Errore durante la configurazione del listener di applicazioni della classe org.springframework.security .web.session.HttpSessionEventPublisher java.lang.ClassNotFoundException: org.springframework.security.web.session.HttpSessionEventPublisher a org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1387) a org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1233) all'indirizzo org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:3786) all'indirizzo org.apache.catalina.core.StandardContext.start (StandardContext.java:4342) all'indirizzo org.apache.catalina.core.ContainerBase .addChildInternal (ContainerBase.java:791) all'indirizzo org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:771) all'indirizzo org.apache.catalina.core.StandardHost.addChild (StandardHost.java:525) all'indirizzo org.apache.catalina.startup.HostConfig.deployDescriptor (HostConfig.java:627) all'indirizzo org.apache.catalina.startup.HostConfig.deployDescriptors (HostConfig.java:553) all'indirizzo org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:488) all'indirizzo org.apache.catalina.startup. HostConfig.start (HostConfig.java:1149) all'indirizzo org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java:311) all'indirizzo org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:117) all'indirizzo org.apache.catalina.core.ContainerBase.start (ContainerBase.java:1053) all'indirizzo org.apache.catalina.core.StandardHost.start (StandardHost.java:719) all'indirizzo org.apache.catalina.core. ContainerBase.start (ContainerBase.java:1045) all'indirizzo org.apache.catalina.core.StandardEngine.start (StandardEngine.java:443) su org.apache.catalina.core.StandardService.start (StandardService.java:516) all'indirizzo org.apache.catalina.core.StandardServer.start (StandardServer.java:710) all'indirizzo org.apache.catalina.startup. Catalina.start (Catalina.java:578) a sun.reflect.NativeMethodAccessorImpl.invoke0 (metodo natale) a sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) a sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl .java: 25) all'indirizzo java.lang.reflect.Method.invoke (Method.java:597) all'indirizzo org.apache.catalina.startup.Bootstrap.start (Bootstrap.java:288) all'indirizzo org.apache.catalina .startup.Bootstrap.main (Bootstrap.java:413)

+3

I tuoi vasi sono referenziati tramite collegamenti simbolici? Tomcat non seguirà i collegamenti simbolici per impostazione predefinita. – fge

+0

No, la webapp principale è collegata ad una cartella di distribuzione, ma anche se inserisco l'intera app, ricevo comunque questo errore. – liam

+2

Intendevo i vasi in WEB-INF/lib. Sono stato morso abbastanza da questo errore per essere molto attento a configurare correttamente Tomcat ... – fge

risposta

2

Quindi, non ho ancora un motivo per perché questo sta accadendo, ma finalmente sono riuscito a farlo funzionare. Normalmente, usiamo 'unzip' per decomprimere la guerra nella directory deploy. L'ho acceso per usare "jar" e tutto funziona magicamente.

Ho no idea del perché questo sarebbe.Ho provato ogni altra permutazione (controllando la nostra cartella di distribuzione, collegamenti simbolici, permessi, proprietà, ecc.) E questo era il solo cosa che ha fatto la differenza, anche la differenza tra le due cartelle decompresse mostrava che erano uguali, con le stesse autorizzazioni, ma uno ha funzionato e uno non lo ha

Nota anche: gli schieramenti di produzione utilizzano "decomprimi" da anni. Non riesco davvero a capirlo, ma sono contento di poter almeno lavorare su qualcos'altro.

2

Una cosa da esaminare, ClassNotFoundException non indica sempre che la classe elencata (nel tuo caso org.springframework.web.context.ContextLoaderListener) non è stata trovata, potrebbe significare che la classe non può essere caricata.

Se quella particolare classe non riesce a caricare per qualsiasi motivo, diciamo che ha un blocco statico che fa riferimento a un'altra classe che non viene trovata, il caricatore di classi segnala l'errore di caricamento come "ClassNotFoundException".

Assicurarsi che la directory WEB-INF/lib non contenga classi/jar presenti anche nelle librerie predefinite di Tomcat. Questo a volte può causare errori di caricamento se ci sono più versioni. Facendo decomprimere i jar nella directory delle classi, è possibile che si stiano spostando le classi nell'ordine dei percorsi, motivo per cui potrebbe funzionare.

+0

Grazie, ma la soluzione è risultata ancora più strana. – liam

Problemi correlati