Since we combined JSP with JSF 1.2 on websphere community edition (wasc 2.1.1.4) (same for apache geronimo/apache tomcat), i often see mysteriously looking exception: A literal value was specified for attribute actionListener (see below for stack). This looks like we cannot use #{...} expressions used by faces but only ${...} used by JSP.
This is the exception itself:
Caused by: org.apache.jasper.JasperException: /portal/activity/ActivityResultInfo.jsp(377,8) A literal value was specified for attribute actionListener that is defined as a deferred method with a return type of void. JSP.2.3.4 does not permit literal values in this case
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:148)
at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1119)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:846)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:865)
...
Fortunately we have not only found the problem but also a cure.
Assuming web.xml for server is located in C:\Tools\WASC 2.1.1.4\var\catalina\conf, make sure it contains following entries:
jsp
org.apache.jasper.servlet.JspServlet
modificationTestInterval
0
development
true
fork
false
xpoweredBy
false
engineOptionsClass
org.apache.geronimo.jasper.JspServletOptions
scratchdir
c:/Tools/WASC 2.1.1.4/var/catalina/worker1/
keepgenerated
true
3
keepgenerated = true is very important.
Now, you can get rid of problem undeploying app, stopping your app server, cleaning scratch dir and redeploying app back.
Then faces should run normally.