Sto riscontrando questo strano problema con i server tomcat 5.5 e tomcat 6.0. Ho due applicazioni web che verranno installate su tomcat. Quando viene avviato tomcat, queste due applicazioni Web vengono avviate simultaneamente, ma a volte un'applicazione Web non riesce a inizializzarsi a causa dell'errore di init in un'applicazione, mentre un'altra applicazione riceve errori di classenotfoundException durante l'esecuzione. In tomcat 7.0 l'applicazione funziona correttamente anche se l'altra applicazione non è stata inizializzata.Errore ClassNotFoundException in Tomcat 5.5 e Tomcat 6.0
Dopo un po 'di debug sono venuto a sapere che c'è un jar chiamato crystal.jar che si trova nella cartella web-inf/lib di entrambe le applicazioni. Ho spostato il jar nella cartella common/lib di tomcat, quindi ha iniziato a funzionare correttamente. Voglio sapere perché funziona bene in Tomcat 7.0, non nelle versioni tomcat 5.xe tomcat 6.x. C'è qualche cambiamento nel classloading dell'architettura tra queste versioni?
Grazie
Edit1: La biblioteca era in una posizione di entrambe le directory delle applicazioni WEB-INF \ lib e non hanno alcuna dipendenza con le DLL esterne. Proprio ora ho letto dell'architettura del classloader tomcat 5.5 e sono venuto a sapere che ogni applicazione web ha il proprio caricatore di classe. Le librerie nella cartella delle cartelle e delle classi WEB-INF \ lib verranno caricate in questo classloader. Le librerie memorizzate in una directory comune verranno collocate in un classloader condiviso. Quindi questa libreria dovrebbe essere caricata separatamente in un caricatore di classi separato dell'applicazione web. Lì anche se un'applicazione web non riesce ad avviare un'altra applicazione web dovrebbe funzionare in modo indipendente. Ecco perché mi sono sentito strano e ho bisogno di indagare su furthur.
Così avete appena aumentato MaxPermSize, giusto? –