我正在开发一个Spring MVC服务应用程序,我计划在Heroku上部署它。当我使用git push部署应用程序时,应用程序依赖于Jetty,一切都运行得很好。然后我决定从应用程序中删除Jetty,将应用程序拆分为几个模块,使用Maven将其捆绑成WAR,并将该WAR部署到Heroku (有效地将我的应用程序部署到Tomcat7)。应用程序的服务部分继续正常工作,但JSP开始抛出奇怪的异常:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 12 in the jsp file: /WEB-INF/jsp/createOrder.jsp
The method proprietaryEvaluate(String, Class<Boolean>, PageContext, null, boolean) is undefined for the type PageContextImpl
9: </head>
10: <body>
11: <c:choose>
12: <c:when test="${success}">
13: Order successfully created
14: </c:when>
15: <c:otherwise>堆栈跟踪:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:468)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:378)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)看起来好像EL不起作用。
有没有其他人遇到过这个或类似的问题,有谁知道如何解决它?
发布于 2013-07-18 17:03:20
好吧,为了回答我自己的问题...我做了两件事来解决这个问题:
1)我已经从Maven文件中删除了剩余的Jetty依赖项;Jetty只用于本地测试,所以这不会造成任何问题
2)我添加了一个对org.springframework.ui.Model的引用作为重定向到JSP页面的所有Spring MVC控制器方法的参数,以及现有的Map<String, Object>参数;服务方法--那些返回XML或JSON的方法--保持不变。我还将Map<String, Object>参数的所有成员复制到了模型参数中。
我的猜测是,从pom.xml中移除Jetty依赖确实起到了作用,但我还实现了第二个修复。
https://stackoverflow.com/questions/17619382
复制相似问题