2012-04-05 1 views
1

Der Fehler enthält, ist:Kann verwenden JSTL nicht in JSP-Seite, mit Projekt, das juel-impl Glas wegen Classcast mit ExpressionFactoryImpl

SEVERE: Servlet.service() for servlet [jsp] in context with path [] threw exception  [Unable to compile class for JSP] with root cause 
java.lang.ClassCastException: de.odysseus.el.ExpressionFactoryImpl cannot be cast to javax.el.ExpressionFactory 
at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:180) 
at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:107) 
at org.apache.jasper.compiler.PageInfo.<init>(PageInfo.java:79) 
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:110) 
    ..... 

Das Projekt einen Krieg Overlay verwendet, in dem das überlagerte Projekt das juel-impl-Glas, das für seine Verwendung von Shindig notwendig ist. Eine Möglichkeit, jstl in den jsp-Seiten des untergeordneten Projekts zu verwenden?

Antwort

3

Scheint, Sie haben zwei konkurrierende EL-APIs in Ihrem Klassenpfad, Tomcat und einem anderen aus Ihrer Anwendung. Ihre Kriegsdatei darf keine el-api.jar oder juel-api.jar enthalten. Stellen Sie sicher, dass diese Abhängigkeiten ausgeschlossen sind.

+0

ok, habe ich die el-api.jar ausgeschlossen, aber es scheint, es gibt immer noch einige Classpath-Ladeprobleme. Beim Ausführen meiner JSP-Seite erhalte ich die folgenden Fehler: – chrismarx

+0

INFO: Illegaler Zugriff: Diese Webanwendungsinstanz wurde bereits gestoppt. De.odysseus.el.tree.impl.ast.AstUnary $ Operator konnte nicht geladen werden. Der nachfolgende Stack-Trace wird durch einen Fehler verursacht, der zu Debugging-Zwecken ausgelöst wird, sowie um zu versuchen, den Thread zu beenden, der den illegalen Zugriff verursacht hat, und keinen funktionalen Einfluss hat. java.lang.IllegalStateException \t bei org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1564) bei org.apache.catalina..WebappClassLoader.loadClass (WebappClassLoader.java:1523) bei de.odysseus. el.tree.impl.Parser.unary (Parser.java:573 – chrismarx

+0

sowie - mit der Ursache java.lang.ClassNotFoundException: de.odysseus.el.tree.impl.ast.AstUnary $ Operator – chrismarx

1

Das Juel 2.1.3 Glas ist eine Kombination der folgenden Gläser juel-impl.jar, juel-spi.jar und juel-api.jar. Wir hatten das gleiche Problem, wenn wir juel 2.1.3 Glas in der Pom und in Tomcat 7 eingesetzt.

Das Problem wird gelöst, indem Juel 2.1.3 von Pom und durch Zugabe nur Juel-impl.

< Abhängigkeit >
< groupId> de.odysseus.juel </groupId >
< artifactId> juel-impl </artifactId >
<Version> 2.2.6 </Version >
</dependency >

müssen Sie auch hinzufügen < Abhängigkeit > <groupId> de.odysseus.juel </groupId > <artifactId> juel-api </artifactId > < Version> 2.2.6 </Version > </dependency >

Die juel 2.1.3 jar enthält die javax/el-schnittstellen und ist auch ein teil von jsp-api jar.

Ich hoffe, das wird helfen.