gpt4 book ai didi

java - Heroku 上的 JSP - "Unable to compile class for JSP"

转载 作者:行者123 更新时间:2023-11-28 22:43:30 25 4
gpt4 key购买 nike

我正在开发一个 Spring MVC 服务应用程序,我计划将其部署在 Heroku 上。当我使用 git push 部署应用程序并且该应用程序依赖于 Jetty 时,一切正常。然后我决定从应用程序中删除 Jetty,将应用程序拆分为几个模块,使用 Maven 将其捆绑到 WAR 中并将该 WAR 部署到 Heroku(有效地将我的应用程序部署到 Tomcat 7)。应用程序的服务部分继续正常工作,但 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 不工作。

有没有其他人遇到过这个或类似的问题,有人知道如何解决吗?

最佳答案

好吧,回答我自己的问题......我做了两件事来解决这个问题:
1) 我已经从 Maven pom.xml 文件中删除了剩余的 Jetty 依赖项;无论如何,Jetty 只是用于本地测试,所以这不会造成更多问题
2) 我添加了对 org.springframework.ui.Model 的引用作为重定向到 JSP 页面的所有 Spring MVC Controller 方法的参数,以及现有的 Map<String, Object>范围;服务方法——那些返回 XML 或 JSON 的方法——保持不变。我还复制了 Map<String, Object> 的所有成员参数转换为模型参数。

我的猜测是,从 pom.xml 中删除 Jetty 依赖项可以解决问题,但我还实现了第二个修复措施。

关于java - Heroku 上的 JSP - "Unable to compile class for JSP",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17619382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com