2011-11-15 12 views
1

私のSpringアプリケーション(webapp ver 2.5)はTomcat 6.0上でうまく動作していました。しかし、私はTomcatの5.5上で実行するために2.4のver Webアプリケーションにそれを変換した後、私は以下の例外に出くわした:javax.servlet.jsp.JspException:Tomcat 5.5のjavax/el/ValueExpression

exception 

org.apache.jasper.JasperException: javax.servlet.jsp.JspException: javax/el/ValueExpression 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:355) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
root cause 

javax.servlet.ServletException: javax.servlet.jsp.JspException: javax/el/ValueExpression 
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:837) 
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) 
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:141) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
root cause 

java.lang.NoClassDefFoundError: javax/el/ValueExpression 
    java.lang.Class.getDeclaredMethods0(Native Method) 
    java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    java.lang.Class.getDeclaredMethods(Class.java:1791) 
    java.beans.Introspector$1.run(Introspector.java:1287) 
    java.security.AccessController.doPrivileged(Native Method) 
    java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285) 
    java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151) 
    java.beans.Introspector.getBeanInfo(Introspector.java:402) 
    java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    java.beans.Introspector.<init>(Introspector.java:383) 
    java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    java.beans.Introspector.<init>(Introspector.java:383) 
    java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3729) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2132) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1600) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) 
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222) 
    org.apache.jasper.compiler.Node$Root.accept(Node.java:457) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Generator.generate(Generator.java:3321) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:296) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:314) 
    org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:171) 
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_c_005fimport_005f1(index_jsp.java:186) 
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:104) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
root cause 

java.lang.ClassNotFoundException: javax.el.ValueExpression 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1363) 
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209) 
    java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316) 
    java.lang.Class.getDeclaredMethods0(Native Method) 
    java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
    java.lang.Class.getDeclaredMethods(Class.java:1791) 
    java.beans.Introspector$1.run(Introspector.java:1287) 
    java.security.AccessController.doPrivileged(Native Method) 
    java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285) 
    java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151) 
    java.beans.Introspector.getBeanInfo(Introspector.java:402) 
    java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    java.beans.Introspector.<init>(Introspector.java:383) 
    java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    java.beans.Introspector.getBeanInfo(Introspector.java:229) 
    java.beans.Introspector.<init>(Introspector.java:383) 
    java.beans.Introspector.getBeanInfo(Introspector.java:168) 
    org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3729) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2132) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1600) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) 
    org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1706) 
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1442) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2216) 
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2222) 
    org.apache.jasper.compiler.Node$Root.accept(Node.java:457) 
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2166) 
    org.apache.jasper.compiler.Generator.generate(Generator.java:3321) 
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:296) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.apache.taglibs.standard.tag.common.core.ImportSupport.acquireString(ImportSupport.java:314) 
    org.apache.taglibs.standard.tag.common.core.ImportSupport.doEndTag(ImportSupport.java:171) 
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspx_meth_c_005fimport_005f1(index_jsp.java:186) 
    org.apache.jsp.WEB_002dINF.jsp.index_jsp._jspService(index_jsp.java:104) 
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 

私は以下のようにJSTLライブラリへの参照があります。

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

マイライブラリがあり瓶の下:私は他の記事から学んだように

asm-3.1.jar 
cglib-2.1.jar 
commons-codec-1.4.jar 
commons-collections-3.2.jar 
commons-lang-2.3.jar 
commons-logging-1.1.jar 
jackson-core-asl-1.7.1.jar 
jackson-jaxrs-1.7.1.jar 
jackson-mapper-asl-1.7.1.jar 
jackson-xc-1.7.1.jar 
jersey-client-1.8.jar 
jersey-core-1.8.jar 
jersey-json-1.8.jar 
jersey-server-1.8.jar 
jettison-1.1.jar 
jsr311-api-1.1.1.jar 
jstl-1.2.jar 
mail-1.4.1.jar 
org.springframework.aop-3.0.6.RELEASE.jar 
org.springframework.asm-3.0.6.RELEASE.jar 
org.springframework.aspects-3.0.6.RELEASE.jar 
org.springframework.beans-3.0.6.RELEASE.jar 
org.springframework.context-3.0.6.RELEASE.jar 
org.springframework.context.support-3.0.6.RELEASE.jar 
org.springframework.core-3.0.6.RELEASE.jar 
org.springframework.expression-3.0.6.RELEASE.jar 
org.springframework.instrument-3.0.6.RELEASE.jar 
org.springframework.instrument.tomcat-3.0.6.RELEASE.jar 
org.springframework.jdbc-3.0.6.RELEASE.jar 
org.springframework.jms-3.0.6.RELEASE.jar 
org.springframework.orm-3.0.6.RELEASE.jar 
org.springframework.oxm-3.0.6.RELEASE.jar 
org.springframework.test-3.0.6.RELEASE.jar 
org.springframework.transaction-3.0.6.RELEASE.jar 
org.springframework.web-3.0.6.RELEASE.jar 
org.springframework.web.portlet-3.0.6.RELEASE.jar 
org.springframework.web.servlet-3.0.6.RELEASE.jar 
org.springframework.web.struts-3.0.6.RELEASE.jar 
standard-1.0.4.jar 
velocity-1.6.jar 

、それはJSTLとは何かを持っている、とそのJSTL-1.2.jarは互換性がありません。しかし、jstl-1.1.2、jstl-1.1.1およびjstl-1.1.0でエラーが発生する"http://java.sun.com/jsp/jstl/core"のタグライブラリディスクリプタが見つかりません。 in jsp。私はこれがc.tldと他のtldファイルを追加し、これらのファイルへの参照をweb.xmlに持つことで解決できると思います。そのために私はTomcatにアクセスする必要のないTomcatフォルダにそれらを追加する必要があると思います(Tomcatを共有しています)。

この問題を解決するために、必要に応じて以下のジャーを追加/削除しましたが、1つの例外があります。

el-api-6.0.20.jar 
jstl-1.1.0.jar 
jstl-1.1.2.jar 
jstl-1.2.jar 
jstl-api-1.2.jar 
jstl-impl-1.2.jar 

誰もがこの解決策を知っていますか?

ありがとうございました。

+0

私はtomcatのel-api jarファイルを更新できるとは思わない。 – Ralph

答えて

9

あなた/WEB-INF/libリストから:

jstl-1.2.jar 

このJARは、順番に、サーブレット2.5/JSP/EL 2.1の最小値を必要と両方 JSTL 1.2 APIと実装が含まれています。 javax.elパッケージはJSP/EL 2.1で導入されましたが、Tomcat 5.5はそれをサポートしていないため、質問に投稿した例外が説明されています。

standard-1.0.4.jar 

このJARは、JSTL 1.0の実装およびタグライブラリが含まれています。これには実際にJSTL 1.0 API JARファイルが必要です。 JSTL 1.0のtaglib URIも異なっており、URIに/jspが含まれていないため、JSTL 1.2 API/implをJSTL 1.1 APIに置き換えたときのtaglib URIエラーが説明されています(いいえ、JSTL 1.1 API libs don ' implを含んでいない!)。

Tomcat 5.5は、JSTL 1.1でのみ動作するServlet 2.4コンテナです。上記のJARのうち(JSTL 1.2 API/implとJSTL 1.0 impl)のを削除してから、hereをダウンロードできるJSTL 1.1の2つのJARと置き換える必要があります。これはjstl.jarstandard.jarで、ZIPファイルの/libフォルダにあります。

+0

いいですね!本当にありがとう。 – Luc