weblogic 10.3.4 java.lang.ClassNotFoundException: javax.el.ELContextListener

Ich habe eine JSF-1.2-Anwendung, die ich beabsichtige, bereitstellen unter Weblogic 10.3.4. Bei lokalen Tomcat-Umgebung funktioniert es einwandfrei. Aber wenn ich versuche, der Bereitstellung auf weblogic, ich bin immer ein ClassNotFoundException auf javax.el.ELContextListener. Wenn ich el-api.jar - Datei, dann bekomme ich eine LinkageError: loader constraint violation auf javax.EL.ELResolver. Es ist ein tödlicher Teufelskreis.

Zuerst habe ich versucht zu implementieren, wie im KRIEG. Dann erstellte ich ein enterprise-Projekt, so dass ich bereitstellen können als OHR -, aber es hat das problem nicht lösen. Meine EAR-Datei-Struktur ist in Ordnung.

Erstens bekam ich folgenden Fehler,

Caused By: java.lang.ClassNotFoundException: javax.el.ELContextListener
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:297)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:179)

Wenn ich el-api-2.2.jar zu /WEB-INF/lib des KRIEGES oder /APP-INF/lib OHR, dann bekomme ich die loader constarint Fehler;

com.sun.faces.config.ConfigureListener failed: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.addELResolver(Ljavax/el/ELResolver;)V" the class loader (instance of weblogic/utils/classloaders/GenericClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ELResolver used in the signature.
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.addELResolver(Ljavax/el/ELResolver;)V" the class loader (instance of weblogic/utils/classloaders/GenericClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of sun/misc/Launcher$AppClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ELResolver used in the signature
    at com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:582)
    at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:212)

Was ist das problem mit ihm? Ich änderte meine classpath-Reihenfolge, aber das Ergebnis war das gleiche. Meine web.xml ist deklariert als Servlet 2.5 und ich habe die folgenden jar-Dateien in /WEB-INF/lib:

  • commons-beanutils-1.7.0.jar
  • commons-collections-3.2.jar
  • commons-digester-1.8.jar
  • commons-logging-1.0.4.jar
  • darkX-3.3.3.Final.jar
  • glassX-3.3.3.Final.jar
  • jsf-api.jar
  • jsf-impl.jar
  • jstl-1.2.jar
  • laguna-3.3.3.Final.jar
  • log4j-1.2.14.jar
  • poi-3.7-20101029.jar
  • quartz-all-1.8.4.jar
  • richfaces-api-3.3.3.Final.jar
  • richfaces-impl-3.3.3.Final.jar
  • richfaces-ui-3.3.3.Final.jar
  • scjd12.jar
  • slf4j-api-1.6.0.jar
  • slf4j-log4j12-1.6.0.jar
  • themes-3.3.3.Final.jar
  • Welche Behälter verwendest du lokal? Was Servlet-version ist web.xml erklärt? Was JAR-Dateien haben Sie in /WEB-INF/lib?
  • Hi Balusc ich weiß, du wirst Antworten:) vielen Dank zunächst. Ich bin mit Apache Tomcat lokal. meine web.xml version 2.5 Meine Jar-Dateien inf WEB-INf/lib werden; commons-beanutils-1.7.0.jar commons-collections-3.2.jar commons-digester-1.8.jar commons-logging-1.0.4.jar darkX-3.3.3.Final.jar glassX-3.3.3.Final.jar jsf-api.jar jsf-impl.jar jstl-1.2.jar laguna-3.3.3.Final.jar log4j-1.2.14.jar poi-3.7-20101029.jar quartz-all-1.8.4.jar richfaces-api-3.3.3.Final.jar richfaces-impl-3.3.3.Final.jar richfaces-ui-3.3.3.Final.jar scjd12.jar slf4j-api-1.6.0.jar slf4j-log4j12-1.6.0.jar themes-3.3.3.Final.jar
  • Hier ist ein wild guess. Sie (oder einer der Krüge) ist angewiesen auf eine neuere version der EL, als in WebLogic 10.3.4. Sie müssen ElContextListener, aber WebLogic keine hat. War es in der ersten stack-trace? Wenn ja, könnte es zeigen, wer nutzt es.
  • Weblogic schon Schiffe mit JSF/JSTL gebündelt. Sie haben möglicherweise kollidierte. Versuchen Sie, entfernen Sie Sie von Ihrem /WEB-INF/lib vor dem Export. Ich bin nicht dieses posting als eine Antwort, denn ich bin mir nicht sicher über die Ursache und können daher nicht erklären, dieses problem. Ich glaube nicht, verwenden Sie Weblogic und ich habe nicht gesehen vorher. Lassen Sie mich wissen, wenn es funktioniert, dann werde ich umbuchen es als Antwort. @Ed Staub: Die ELContextListener ist Teil der Servlet 2.5 / JSP 2.1. Weblogic 10.3.4 ist ein Servlet 2.5 kompatible container. Also muss er es haben.
  • danke für Eure Antworten. Ich Tat, was Sie gesagt haben, aber leider hat es nicht funktioniert. Es wirft java.lang.IllegalStateException: die Anwendung wurde nicht ordnungsgemäß initialisiert beim Start nicht finden konnte, Werk: javax.Gesichter.Kontext.FacesContextFactory at javax.Gesichter.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:725)' Nach ein bisschen googeln habe ich hinzufügen <listener-Klasse>com.Sonne.Gesichter.config.ConfigureListener</listener-class> zu meinem web.xml Dieses mal ist es throwed 'ClassNotFoundException:javax.el.ELContextListener'
  • java.lang.LinkageError: loader constraint violation Ich denke, dass zeigt doppelte Versionen der Klasse gefunden, die aus verschiedenen klassenpfade. also die EL-Gläser haben zu entfernen, ich denke, aus web-inf lib und app-inf lib
  • Du hast Recht ich dachte mir so, wenn ich sah, dass Fehler. Aber wenn ich zu entfernen, die lib bekomme ich javax.el.ELContextListener ClassNotFoundExcepiton
  • Die ELContextListener sollte in der system-classpath. Haben Sie konfiguriert eine Filterung classloader in Ihrem weblogic-application.xml (prefer-application-packages) oder enabled prefer-web-inf-classes-Einstellung in weblogic.xml ? Ich sehen in der Regel solche Probleme beim ändern der classloader-delegation-Modell.

InformationsquelleAutor Mustafa | 2011-08-09
Schreibe einen Kommentar