JSP error when opening web-front

502 views
Skip to first unread message

Adrian

unread,
Jun 17, 2012, 10:13:22 AM6/17/12
to openwon...@googlegroups.com
Hi everyone,

I was hoping someone could point me in the right direction as to how to solve the following problem:

When the OWL server has started and I use my browser to open the web server and go to the /wonderland-web-front/ page,
I keep getting the following error:

org.apache.jasper.JasperException: /index.jsp(77,10) PWC6038: "${requestScope['WelcomeScripts']}" contains invalid expression(s): javax.el.ELException: Unable to find ExpressionFactory of type: org.apache.el.ExpressionFactoryImpl

This is the full stacktrace in the log file:

WARNING: ApplicationDispatcher[/wonderland-web-front] PWC1231: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /index.jsp(77,10) PWC6038: "${requestScope['WelcomeScripts']}" contains invalid expression(s): javax.el.ELException: Unable to find ExpressionFactory of type: org.apache.el.ExpressionFactoryImpl
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:78)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:373)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:185)
    at org.apache.jasper.compiler.JspUtil.validateExpressions(JspUtil.java:655)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.getJspAttribute(Validator.java:1363)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1139)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:856)
    at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2302)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2352)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2358)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:498)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2302)
    at org.apache.jasper.compiler.Validator.validate(Validator.java:1878)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:219)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:447)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:620)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:483)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:373)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
    at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:802)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:664)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:497)
    at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:468)
    at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:364)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:314)
    at org.jdesktop.wonderland.front.servlet.WelcomeServlet.processRequest(WelcomeServlet.java:63)
    at org.jdesktop.wonderland.front.servlet.WelcomeServlet.doGet(WelcomeServlet.java:79)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
    at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:662)

When I look at the index.jsp file: the error revolves around the following piece of code:
<c:forEach var="script" items="${requestScope['WelcomeScripts']}"> 
              <c:import url="${script.url}" context="${script.context}" />
 </c:forEach>

Now, up until now I have had no issues accessing this page, this just seemed to have happened out of the blue.
The first thing I did to try and resolve the issue is do a google search to see if anyone else had a similar issue with this piece of code,
but there are no results.
I have also downloaded a fresh precompiled copy of the Wonderland.jar file and I have downloaded the latest source files and compiled my own version,
each time deleting the .wonderland-server directory, but also no luck.
I have manually added the ExpressionFactoryImpl class to the lib directory of the wonderland-web-front.war web app, which fixes this issue, but leads to a java compilation
error instead.

Might anyone have some suggestions as to what I could try next?

Thanks a lot,
Adrian

jagwire

unread,
Jun 18, 2012, 3:01:00 PM6/18/12
to openwon...@googlegroups.com
Adrian,

You don't by chance have the "client-test" module installed do you? That's the only module I can think of that takes advantage of welcome scripts. Just out of curiosity, what browser/version are you using to access the welcome page?

best regards,
jW

Adrian

unread,
Jun 19, 2012, 7:31:32 AM6/19/12
to openwon...@googlegroups.com
Hi jW,

thank you for the reply. I am not using the "client-test" module, no. The weird thing is that I have made no modifications
to the Open Wonderland .jar file at all and even with a newly downloaded copy of the Wonderland.jar file I get the above error message.

I have tried several browsers, Firefox 13.0.1, Google Chrome 19.0.1084.56, which are I think the latest official versions, and then several different
versions of Internet Explorer. They all produce the same output.

Regards,
Adrian

Adrian

unread,
Jun 20, 2012, 5:10:40 AM6/20/12
to openwon...@googlegroups.com
Btw, when I go directly to the administration page, so /admin, I get a similar error, but due to another piece of script:

org.apache.jasper.JasperException: /admin.jsp(36,12) PWC6038: "${requestScope['adminPages']}" contains invalid expression(s): javax.el.ELException: Unable to find ExpressionFactory of type: org.apache.el.ExpressionFactoryImpl

Which in this case revolves around this piece of code:

<c:forEach var="adminPage" items="${requestScope['adminPages']}">

Could the error be somehow related to the use of the jstl tag?

jagwire

unread,
Jun 20, 2012, 10:12:04 AM6/20/12
to openwon...@googlegroups.com
Adrian,

Hmm. This is a bit puzzling. You don't have javascript turned off in
your browsers or anything right? What platform are you running this
server on?

regards,
jW

Adrian

unread,
Jun 20, 2012, 5:53:43 PM6/20/12
to openwon...@googlegroups.com
jW,

I am running it on a windows xp box, sp3, using jdk 1.6.0_32. It has to be something on my machine that is conflicting
with the server. When I run it on an xp installation on a virtual machine, using the same sp and sdk version, it runs fine.
However, running it on a virtual machine makes it rather slow unfortunately.

Javascript is indeed not turned off. I have deinstalled my firewall and anti malware programs to see if that could be it, maybe something is blocked, but no luck.

Regards,
Adrian


Jos Flores

unread,
Jun 20, 2012, 5:57:41 PM6/20/12
to openwon...@googlegroups.com
Do you have some other Java apps or jars in your classpath that might
be being hit before wonderland.jar? If some other version of a
required library is being loaded first, that could be a source of
conflicts.

cheers,
José

Adrian

unread,
Jun 21, 2012, 6:53:17 AM6/21/12
to openwon...@googlegroups.com

Thanks for the reply Jose,

the classpath was not the problem, but it did lead me to find what was causing it.
I had my classpath set to .; , so empty and current directory only.
In my windows path I had set the location of my jdk bin folder:
C:\Program Files\Java\jdk1.6.0_32\bin

That was the only reference I had to the sdk in the path.
Because I needed to run a tomcat server locally from time to time,  I had put some extra jar files
in the ext directory of the included jre, so in this directory:
C:\Program Files\Java\jdk1.6.0_32\jre\lib\ext
After I removed this directory from the windows path, I had never removed the extra jar files.

Among the jar files in the directory was the jar file for the expression language, el.jar.
You would think that if this directory is not in the windows path, and it is not a subdirectory of the
mentioned bin directory, that it would not search it for jar files, but sure enough it did. As soon as I
deleted the el.jar file, deleted the .wonderland-server directory and started up the wonderland server again,
everything went fine.

Hopefully this will help someone with similar issues in the future. Thanks everyone for all the replies.

Jos Flores

unread,
Jun 21, 2012, 7:04:39 AM6/21/12
to openwon...@googlegroups.com
Hi there,

good to hear it's working now. ext is automatically thrown in in, so
it was a classpath issues after all :)

cheers,
José
Reply all
Reply to author
Forward
0 new messages