我们目前正在将我们的应用程序从 tomcat 8.0 迁移到 tomcat 8.5。
在这些应用程序中,我们有一个非常简单的 spring JEE 应用程序,它使用 JSP 和 spring 控制器。
在 Tomcat 8.0 上部署时,jsp 页面可以正确提供,但在 Tomcat 8.5 上会产生错误:
javax.el.ELException: The class [com.orange.gvw.acd.controllers.ApiConnectionController] could not be imported as it could not be found
javax.el.ImportHandler.importClass(ImportHandler.java:114)
org.apache.jasper.runtime.PageContextImpl.getELContext(PageContextImpl.java:962)
org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:935)
org.apache.jsp.WEB_002dINF.views.manageConnections_jsp._jspService(manageConnections_jsp.java:192)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)
org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:856)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:841)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
我们发现当我们的 jsp 页面包含一个 el(例如 ${toto})时会发生此问题。当我们删除这个 el 时,它就起作用了。
为了服务包含 el 的 jsp,是否需要修复或配置一些东西?