Frage

Wir sind derzeit in den Prozess der Migration unserer Anwendung von unserer Produktionsumgebung auf ein neues Daten-center.

  • Aktuelle Produktion Umwelt :Java 1.4, Java EE-3, WAR 5.1, JSF 2.1
  • Neue Data Center-Umgebung:Java 1.5, Java EE 5, 6,1, JSF 2.1
Unsere Anwendung basiert auf JSF 2.1 und enthält den folgenden code in einer der AJAX-Aufrufe:
request.getSession().getServletContext().getRequestDispatcher(
                    "/results.faces").include(request, response);
Und das ist, wo wir laufen in Probleme.

Fall 1:OHR Struktur wie pro die standard Spezifikationen
.OHR -> KRIEG -> WEB-INF -> lib -> *.jar (alle Anwendungs-spezifischen Gläsern sind unter WEB-INF/lib).Das funktioniert nicht und wir kee, auf immer Ausnahmen für Klasse nicht gefunden wird der classloader.Auch die oben genannten AJAX-Aufruf schlägt fehl (keine Ausgabe generiert)

Fall 2:OHR enthält alle der Anwendung-JAR-Dateien auf der root (MANIFEST.MF hat den Klassenpfad manuell angegeben).
Dieser Ansatz funktioniert perfekt und alle JAR-Dateien sind geladen, ohne Probleme.Zudem, der AJAX-Aufruf geht auch gut durch.

Irgendwelche Ideen, warum dies sein könnte geschehen.

- Ashish

War es hilfreich?

Lösung

Ja, es ist, weil Java EE-app-Server eine Hierarchie der class loader, der geht so etwas wie dieses:zunächst die bootstrap-class-loader genannt wird;weiter ist die OHR-level-Klasse loader ein, danach ist der KRIEG-level-Klasse loader.Higher-level-Klasse Lader nicht schauen Sie unten, für Klassen, die Sie brauchen.Wenn Sie nicht finden, was Sie brauchen für eine ClassNotFoundException geworfen werden.

Also die jar-Dateien in WEB-INF/lib nicht sichtbar waren, um die EAR-Klasse loader.Wenn Sie sich bewegen, diese Gläser bis Sie das problem lösen.Es macht all diese Gläser sichtbar für alle Kriege in Ihrem OHR, als gut.

Eine Sache, möchten Sie vielleicht zu prüfen, ist die Spezifikation für Ihre web.xml und andere Dateien.Die servlet-und JSP-Spezifikationen geändert, die irgendwo entlang der Weg, so Gläsern wie JSTL und so ging von version 1.0 auf 1.1.Sie möchten möglicherweise überprüfen Sie sorgfältig Ihre web.xml und alle Gläser zu machen Sie sicher, dass Sie passen die Spezifikationen unterstützt, die von Ihrer Java EE-app-server.

Leider werden die Aktualisierung der app-server ist nicht so einfach wie das ploppen eines OHR-oder KRIEG.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top