java.lang.LinkageError: Ladereinschränkungsverletzung: beim Auflösen der Schnittstellenmethode javax.servlet.jsp.JspApplicationContext.getExpressionFactory () [duplizieren]

8

Ich verwende JSF 2.0 in Eclipse IDE. Als ich versuchte, JSP und Servlet zu implementieren, erhalte ich den folgenden Fehler:

%Vor%

Wie wird das verursacht und wie kann ich es lösen?

    
Muthu 07.11.2011, 05:34
quelle

2 Antworten

12

Dein Klassenpfad ist ein Chaos.

Diese besondere Ausnahme deutet darauf hin, dass Sie den /WEB-INF/lib -Ordner der Webanwendung mit willkürlich heruntergeladenen servletcontainer-spezifischen Bibliotheken eines Servletcontainer-Herstellers / einer -Version übersät haben, die nicht mit dem Servletcontainer kompatibel ist, in dem Sie die Webanwendung tatsächlich bereitstellen. Die spezielle Ausnahmebedingungsnachricht weist darauf hin, dass Ihr /WEB-INF/lib jsp-api.jar , j2ee.jar und / oder javaee.jar Dateien enthält.

Sie sollten sie entfernen . Der Servletcontainer bereits wird mit JSP ausgeliefert. Sie sollten niemals Servletcontainer-spezifische Bibliotheken kopieren / verschieben. Es würde nur mit der Ziellaufzeit kollidieren. Wenn Sie dies in Ihrer IDE zu Kompilierungsfehlern für die Problemumgehung getan haben, sollten Sie es anders gelöst haben. Sie sollten nämlich den Ziel-Servletcontainer in Ihre IDE integrieren und ihn dann dem Projekt als Targeted Runtime zuordnen. Auf diese Weise verwendet die IDE automatisch die Bibliotheken des Servletcontainers im Klassenpfad für die Kompilierung.

Siehe auch:

BalusC 07.11.2011, 13:25
quelle
1

Ich hatte den gleichen Fehler bei der Migration eines Projekts von WAS6 nach WAS 7. Hier ist der Fix:

  1. Aktualisieren Sie web.xml:
    • Öffnen Sie Projektname \ src \ main \ webapp \ WEB-INF \ web.xml
    • Fügen Sie den folgenden Listener hinzu: Com.sun.faces.config.ConfigureListener
    • Erstellen Sie das Projekt und stellen Sie es in Websphere bereit
  2. Ändern der Laderreihenfolge:
    • Öffnen Sie die Websphere-Anwendungsserverkonsole
    • Gehe zu: Anwendungen & gt; & gt; Anwendungstypen & gt; & gt; WebSphere-Unternehmensanwendungen
    • Klicken Sie auf das Projekt
    • Klicken Sie auf "Laden und Aktualisieren der Klasse"
    • Wählen Sie zuerst "Mit dem übergeordneten Loader geladene Klassen"
    • Klicken Sie auf Anwenden
  3. Deaktivieren Sie das JSP-Klassen-Neuladen
    • a. Gehe zu: Anwendungen & gt; & gt; Anwendungstypen & gt; & gt; WebSphere-Unternehmensanwendungen
    • Klicken Sie auf das Projekt
    • Klicken Sie auf JSP und JSF Optionen
    • Deaktivieren Sie "JSP aktivieren das erneute Laden der Klasse"
    • Klicken Sie auf OK
  4. Ändern Sie die JSF-Implementierung
    • Gehe zu: Anwendungen & gt; & gt; Anwendungstypen & gt; & gt; WebSphere-Unternehmen Anwendungen
    • Klicken Sie auf das Projekt
    • Klicken Sie auf JSP- und JSF-Optionen
    • Wählen Sie "MyFaces 1.2" unter JSF-Implementierung
  5. Starten Sie das Projekt
user1532638 17.07.2012 18:37
quelle

Tags und Links