ejb@glassfish.java.net

appserv-rt conflict with jstl libraries

From: Joseph dela Peņa <masterkurei99_at_gmail.com>
Date: Tue, 12 May 2009 15:28:21 +0800

Hi,

   I've started using JSTL tags in my JSP. All was good until i needed to
call a remote EJB from a servlet, store the object to a session, and
redirect to a JSP page to display the content of the remote object.
We'll just to clear things, i am able to do this properly using JSP
expressions <%=myVar%>. And i am able to use <c:out value="${myVar}"
/>

on a project which does not have appserv-rt.jar inside it's lib
directory. I'm getting a java.lang.NoSuchMethodError:
javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
when i add appserv-rt.jar in my lib. I'm using Tomcat 6.0.18 as my web
server and glassfish as my app server. Below is the complete stack
trace from tomcat:

SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NoSuchMethodError:
javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
at org.apache.jasper.compiler.JspUtil.getExpressionFactory(JspUtil.java:1166)
at org.apache.jasper.compiler.JspUtil.validateExpressions(JspUtil.java:628)
at org.apache.jasper.compiler.Validator$ValidateVisitor.getJspAttribute(Validator.java:1341)
at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1117)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:834)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1482)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2257)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2307)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2313)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:481)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2257)
at org.apache.jasper.compiler.Validator.validate(Validator.java:1837)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:195)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:409)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:470)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:364)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at gogogo.MyServlet.doPost(MyServlet.java:88)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

This has been driving me nuts for weeks... any help would be deeply appreciated.

thanks