1

Whenever I try to iterate though my model object on the jsp UI using the </c:forEach> iterator I get the following error:

HTTP ERROR 500
Problem accessing /SelfService2.0/app/agenda/data. Reason: 

javax/el/ValueExpression

Is this to do with library mismatch?

Also I am running my project on J2EE preview on the eclipse.

My WEB-INF/lib does have the relevant libraries .

Thanks

                    <c:if test="${empty agendaList}">
                    <div style="float: left!important; margin: 10px;">No Data Please use Upload Functionality</div>
                    </c:if>
                    <input type="button" class="eventBtn uploadData" value="Import Master.xlsx >>"
                        style="float: right; margin: 10px; background-color: #88b3da" />
                    <div class="clearBoth"></div>
                    <div id="accordion">
                        <c:forEach var="agenda" items="${agendaList}" varStatus="rowCnt">
                            <input id="agendaName${agenda.agendaDetail.agendaId}" type="hidden"  value="${agenda.agendaDetail.agendaName}"/>
                            <div id="agendaItem${agenda.agendaDetail.agendaId}" class="agendaItem">
                                <div class="accHead">
                                    <div class="agendaTime">${agenda.agendaDetail.startTime}<br />${agenda.agendaDetail.endTime}</div>
                                    <div class="agendaName">${agenda.agendaDetail.agendaName}</div>
                                    <div style="padding-top: 5px;">
                                        <a href="javascript:void(0)" class="orangeLink accEdit">Edit</a>
                                        <span class="openCloseImg"></span>
                                    </div>
                                </div>
                                <div class="accBody">
                                    <table>
                                        <tr>
                                            <td class="leftTD">Date</td>
                                            <td style="padding: 10px 0;">
                                                    <input id="datepicker${agenda.agendaDetail.agendaId}" type="text"  value="${agenda.agendaDetail.startDate}" disabled="disabled"/>
                                                    <script>
                                                    var cntd=${agenda.agendaDetail.agendaId};
                                                    initialiseDatepick(cntd);
                                                    </script>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD">Start Time</td>
                                            <td style="padding: 10px 0;">
                                                <input id="startTime${agenda.agendaDetail.agendaId}"  type="text" value="${agenda.agendaDetail.startTime}" disabled="disabled"/>

                                                <span class="leftTD">End Time</span>

                                                <input id="endTime${agenda.agendaDetail.agendaId}"  type="text" value="${agenda.agendaDetail.endTime}" disabled="disabled"/>

                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD vAlignTop">Description</td>
                                            <td style="padding: 10px 0;">
                                                <textarea id="description${agenda.agendaDetail.agendaId}"  class="demo">${agenda.agendaDetail.description}</textarea>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD vAlignTop">Speaker(s)</td>
                                            <%-- <td style="padding: 10px 0;">
                                                <c:forEach var="speaker" items="${agenda.speakerList}" varStatus="rowCnt">
                                                    ${speaker.firstName} ${speaker.lastName}<br/>
                                                </c:forEach>
                                                <a href="#" class="addAnother orangeLink">+ Add another</a>
                                            </td> --%>
                                            <td style="padding: 10px 0;">
                                                <table class="alternate" id="spkrTbl${agenda.agendaDetail.agendaId}">
                                                    <tr>
                                                        <th style="width: 35%;">Name</th>
                                                        <th style="width: 25%;">Firm</th>
                                                        <th style="width: 20%;">Role</th>
                                                        <th style="width: 20%;">Remove</th>
                                                    </tr>
                                                    <c:forEach var="speaker" items="${agenda.speakerList}" varStatus="rowCnt">
                                                        <tr>
                                                            <td>${speaker.firstName} ${speaker.lastName}</td>
                                                            <td>${speaker.firm}</td>
                                                            <td>${speaker.type}</td>
                                                            <td valign="middle">
                                                                <img src="../../images/trash.jpg" alt="Delete" onclick="deleteRow(${agenda.agendaDetail.agendaId}, ${speaker.attendeeId}, 'Speaker', this)"/>
                                                            </td>
                                                        </tr>
                                                    </c:forEach>
                                                </table>
                                                <div class="addNew"><a href="javascript:void(0);" class="addAnother orangeLink">+ Add another</a></div>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD">Location</td>
                                            <td style="padding: 10px 0;">
                                                <input id="location${agenda.agendaDetail.agendaId}" type="text" value="${agenda.agendaDetail.location}" disabled="disabled" />
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD vAlignTop">Breakout Materials</td>
                                            <td style="padding: 10px 0;">
                                                <table class="alternate" id="mtrlTbl${agenda.agendaDetail.agendaId}">
                                                    <tr>
                                                        <th style="width: 35%;">Asset Name</th>
                                                        <th style="width: 45%;">Asset Type</th>
                                                        <th style="width: 20%;">Remove</th>
                                                    </tr>
                                                    <c:forEach var="material" items="${agenda.agendaMaterialList}" varStatus="rowCnt">
                                                        <tr>
                                                            <td>${material.materialDisplayName}</td>
                                                            <td>${material.assetType}</td>
                                                            <td valign="middle">
                                                                <img src="../../images/trash.jpg" alt="Delete" onclick="deleteRow(${agenda.agendaDetail.agendaId}, ${material.materialId}, 'Material', this)"/>
                                                            </td>
                                                        </tr>
                                                    </c:forEach>
                                                </table>
                                                <div class="addNew"><a href="javascript:void(0)" class="orangeLink addMaterial">+ Add New</a></div>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD vAlignTop">Activity Feedback</td>
                                            <td style="padding: 10px 0;">
                                                <table class="alternate">
                                                    <tr>
                                                        <th style="width: 35%;">Survey Names</th>
                                                        <th style="width: 45%;">Responses</th>
                                                        <th style="width: 20%;">Remove</th>
                                                    </tr>
                                                    <tr>
                                                        <td>Rate the Speaker</td>
                                                        <td>7-star</td>
                                                        <td valign="middle">
                                                            <img src="../../images/trash.jpg" alt="Delete"/>
                                                        </td>
                                                    </tr>
                                                </table>
                                                <div class="addNew"><a href="javascript:void(0)" class="orangeLink">+ Add New</a></div>
                                            </td>
                                        </tr>
                                        <tr>
                                            <td class="leftTD vAlignTop">Participants</td>
                                            <td style="padding: 10px 0;">
                                                <table class="alternate">
                                                    <tr>
                                                        <th style="width: 35%;">Name</th>
                                                        <th style="width: 25%;">Firm</th>
                                                        <th style="width: 20%;">Role</th>
                                                        <th style="width: 20%;">Remove</th>
                                                    </tr>
                                                    <c:forEach var="participant" items="${agenda.participantList}" varStatus="rowCnt">
                                                        <tr>
                                                            <td>${participant.firstName} ${participant.lastName}</td>
                                                            <td>${participant.firm}</td>
                                                            <td>${participant.type}</td>
                                                            <td valign="middle">
                                                                <img src="../../images/trash.jpg" alt="Delete" onclick="deleteRow(${agenda.agendaDetail.agendaId}, ${participant.attendeeId}, 'Attendee', this)"/>
                                                            </td>
                                                        </tr>
                                                    </c:forEach>
                                                </table>
                                                <div class="addNew"><a href="javascript:void(0)" class="orangeLink addParticipant">+ Add New</a></div>
                                                </td>
                                        </tr>
                                    </table>
                                </div>
                            </div>
                        </c:forEach>
                        <hr />
                        <c:if test="${fn:length(agendaList) > 0}">
                        <input type="button" class="eventBtn"
                            style="margin: 10px; background-color: #88b3da" value="Save" onclick="saveAgenda(${fn:length(agendaList)})"/>
                        <input type="button" class="eventBtn"
                            style="margin: 10px; background-color: #88b3da" value="Save and Add New" />
                        </c:if>




...................................exception......................................
HTTP ERROR 500
Problem accessing /SelfService2.0/app/agenda/data. Reason: 

    javax/el/ValueExpression

Caused by:
java.lang.NoClassDefFoundError: javax/el/ValueExpression
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    at java.lang.Class.getDeclaredMethods(Class.java:1791)
    at java.beans.Introspector$1.run(Introspector.java:1287)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285)
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151)
    at java.beans.Introspector.getBeanInfo(Introspector.java:402)
    at java.beans.Introspector.getBeanInfo(Introspector.java:168)
    at java.beans.Introspector.getBeanInfo(Introspector.java:229)
    at java.beans.Introspector.(Introspector.java:383)
    at java.beans.Introspector.getBeanInfo(Introspector.java:168)
    at java.beans.Introspector.getBeanInfo(Introspector.java:229)
    at java.beans.Introspector.(Introspector.java:383)
    at java.beans.Introspector.getBeanInfo(Introspector.java:168)
    at org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3713)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2120)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1599)
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    at org.apache.jasper.compiler.Generator.generate(Generator.java:3305)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:378)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
    at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:540)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
Caused by: java.lang.ClassNotFoundException: javax.el.ValueExpression
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 71 more

Caused by:
java.lang.ClassNotFoundException: javax.el.ValueExpression
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401)
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:363)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
    at java.lang.Class.getDeclaredMethods(Class.java:1791)
    at java.beans.Introspector$1.run(Introspector.java:1287)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1285)
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1151)
    at java.beans.Introspector.getBeanInfo(Introspector.java:402)
    at java.beans.Introspector.getBeanInfo(Introspector.java:168)
    at java.beans.Introspector.getBeanInfo(Introspector.java:229)
    at java.beans.Introspector.(Introspector.java:383)
    at java.beans.Introspector.getBeanInfo(Introspector.java:168)
    at java.beans.Introspector.getBeanInfo(Introspector.java:229)
    at java.beans.Introspector.(Introspector.java:383)
    at java.beans.Introspector.getBeanInfo(Introspector.java:168)
    at org.apache.jasper.compiler.Generator$TagHandlerInfo.(Generator.java:3713)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2120)
    at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1599)
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1441)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
    at org.apache.jasper.compiler.Generator.generate(Generator.java:3305)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:380)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:334)
    at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
    at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1139)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:378)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417)
    at org.mortbay.jetty.handler.HandlerList.handle(HandlerList.java:49)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535)
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:540)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:213)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
4

1 回答 1

0
Caused by: java.lang.NoClassDefFoundError: javax/el/ValueExpression

有根本原因。该类是EL 2.1的一部分,它应该已经是理智的 Servlet 2.5 / JSP 2.1 兼容容器的一部分。

/WEB-INF/lib如果您在 web 应用程序中乱扔了单独下载的任意 servletcontainer 的不同和旧版本的 EL 库,那么它将失败。

您需要确保 webapp/WEB-INF/lib包含您的 webapp 所需的库,而不是 servletcontainer 本身已经提供的库(例如 Servlet、JSP 和 EL 库)。从那里删除任何特定于容器的库,例如,等。el-api.jarel-impl.jar

于 2012-11-12T16:30:16.167 回答