Ich habe dieses seltsame Problem mit den Tomcat 5.5 und Tomcat 6.0-Servern. Ich habe zwei Web-Anwendungen, die auf Tomcat installiert werden.Wenn Tomcat gestartet wird, werden diese zwei Web-Anwendungen auch gleichzeitig gestartet, aber manchmal eine Web-Anwendung nicht initialisiert wegen der Init-Fehler in einer Anwendung eine andere Anwendung erhält ClassnotFundException Fehler während der Ausführung. In Tomcat 7.0 läuft die Anwendung gut, auch wenn die andere Anwendung nicht initialisiert werden konnte.ClassNotFoundException Fehler in Tomcat 5.5 und Tomcat 6.0
Nach einigem Debugging habe ich erfahren, dass es ein jar mit dem Namen crystal.jar gibt, das sich im web-inf/lib Ordner beider Anwendungen befindet. Ich habe das Glas in den Ordner common/lib von Tomcat verschoben, dann hat es gut funktioniert. Ich möchte wissen, warum es in Tomcat 7.0 nicht in Tomcat 5.x und Tomcat 6.x-Versionen funktioniert. Gibt es Änderungen in der Architektur zum Laden von Klassen zwischen diesen Versionen?
Dank
EDIT1: wurde die Bibliothek in der Lage sowohl die Anwendungen WEB-INF \ lib und sie haben keine Abhängigkeit mit dem externen DLLs. Gerade habe ich über tomcat 5.5 classloader architecture gelesen und festgestellt, dass jede Webanwendung ihren eigenen Klassenlader hat. Die Bibliotheken im Ordner WEB-INF \ lib und Klassen werden in diesen Klassenlader geladen. Die Bibliotheken, die unter dem gemeinsamen Verzeichnis gespeichert sind, werden in einen gemeinsamen Klassenlader gestellt. Dann sollte diese Bibliothek separat im separaten Klassenlader der Webanwendung geladen werden. Selbst wenn eine Webanwendung nicht gestartet werden kann, sollte eine andere Webanwendung unabhängig arbeiten. Deshalb fühlte ich mich komisch und musste Nachforschungen anstellen.
So haben Sie gerade MaxPermSize erhöht, nicht wahr? –