Я пытаюсь отлаживать старый jsp-сайт, поэтому я установил tomcat 7 и Netbeans IDE 7.2.1 на свой локальный компьютер, работающий под управлением Windows 7, и получил все настройки. Но когда я запускаю его, я получаю сообщение об ошибке:
SEVERE: Servlet.service() для сервлета jsp исключение org.apache.jasper.JasperException:/pages/caselisting.jsp(строка: 133, column: 35) "$ {case.patientmaxdate}" содержит недопустимые выражения: javax.el.ELException: не удалось проанализировать выражение [ ${case.patientmaxdate}]
Код в этой строке:
<td><c:out default=" " escapeXml="false" value="${case.patientmaxdate}"/></td>
Я очень новичок в jsp и пытаюсь внести некоторые изменения в этот старый сайт. Я сделал некоторые исследования и прочитал, что Tomcat 7 внесла некоторые изменения для этой ошибки. Я был бы признателен, если кто-то может вести меня в правильном направлении.
Спасибо.
Полная трассировка стека:
SEVERE: Servlet.service() для сервлета jsp исключение org.apache.jasper.JasperException:/pages/caselisting.jsp(строка: 133, столбец: 35) "$ {case.patientmaxdate}" содержит недопустимые выражения: javax.el.ELException: не удалось проанализировать выражение [$ {case.patientmaxdate}] в org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42) в org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408) в org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199) в org.apache.jasper.compiler.Validator $ValidateVisitor.checkXmlAttributes(Validator.java:1223) в org.apache.jasper.compiler.Validator $ValidateVisitor.visit(Validator.java:875) at org.apache.jasper.compiler.Node $CustomTag.accept(Node.java: 1539) at org.apache.jasper.compiler.Node $Nodes.visit(Node.java: 2376) at org.apache.jasper.compiler.Node $Visitor.visitBody(Node.java: 2428) at org.apache.jasper.compiler.Validator $ValidateVisitor.visit(Validator.java:894) at org.apache.jasper.compiler.Node $CustomTag.accept(Node.java: 1539) at org.apache.jasper.compiler.Node $Nodes.visit(Node.java: 2376) at org.apache.jasper.compiler.Node $Visitor.visitBody(Node.java: 2428) at org.apache.jasper.compiler.Node $Visitor.visit(Node.java: 2434) at org.apache.jasper.compiler.Node $Root.accept(Node.java: 475) at org.apache.jasper.compiler.Node $Nodes.visit(Node.java: 2376) at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1795) в org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217) на org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) в org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) в org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) at 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.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) в org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) в org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) в org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) в org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) в org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) в org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056) в org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261) в org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388) в org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316) в org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231) в org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) в org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397) в javax.servlet.http.HttpServlet.service(HttpServlet.java:621) в Уровеньвыше: org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) в org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) на filter.SecureFilter.doFilter(SecureFilter.java:38) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) в org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) в org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) в org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) в org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) в org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) в org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) в org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) в org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) в org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) в org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) в org.apache.coyote.AbstractProtocol $AbstractConnectionHandler.process(AbstractProtocol.java:589) в org.apache.tomcat.util.net.AprEndpoint $SocketProcessor.run(AprEndpoint.java:1822) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) в java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:603) в java.lang.Thread.run(Thread.java:722)
Полный код, окружающий строку ошибки:
<c:forEach items="${caselist}" var="case">
<tr onMouseOver="this.bgColor='#EEEEEE';" onMouseOut="this.bgColor='';">
<td><c:out default=" " escapeXml="false" value="${case.patientmaxdate}"/></td>
Здесь caselist - список массивов.