majiajue / myschedule

Automatically exported from code.google.com/p/myschedule
0 stars 0 forks source link

Tomcat7 failed on trigger detail page #6

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The following error occur when running Tmocat7. This page is working when 
running under mvn tomcat:run (tomcat 6) though.

{{{
org.apache.jasper.JasperException: /WEB-INF/views/job/trigger-detail.inc (line: 
26, column: 1) "${ 'org.quartz.SimpleTrigger' == trigger.class.name }" contains 
invalid expression(s): javax.el.ELException: Failed to parse the expression [${ 
'org.quartz.SimpleTrigger' == trigger.class.name }]
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:408)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:199)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1218)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:870)
    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:889)
    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.Node$Visitor.visitBody(Node.java:2428)
    at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:530)
    at org.apache.jasper.compiler.Node$IncludeDirective.accept(Node.java:639)
    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:1790)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    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:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
}}}

Original issue reported on code.google.com by saltnlight5 on 18 Sep 2011 at 4:07

GoogleCodeExporter commented 9 years ago
Both myschedule-1.5.0.war and myschedule-2.1.0-SNAPSHOT2.war works on Tomcat 
6.0.33 and JbossAS 7.

This problem only occur on trigger detail page in Tomcat 7.0.21. Not sure what 
is the root cause, but it seems like it might use different JSP/EL parser and 
dislike older syntax?

Original comment by saltnlight5 on 18 Sep 2011 at 5:35

GoogleCodeExporter commented 9 years ago
I appear that JSP spec disallow the use of 'class' property access. 

When tried simple test: ${'java.lang.Integer' == java.lang.Integer.class.name}, 
Tomcat 7 throws

javax.el.ELException: The identifier [class] is not a valid Java identifier as 
required by section 1.19 of the EL specification (Identifier ::= Java language 
identifier). This check can be disabled by setting the system property 
org.apache.el.parser.SKIP_IDENTIFIER_CHECK to true.
    org.apache.el.parser.AstDotSuffix.setImage(AstDotSuffix.java:46)
    org.apache.el.parser.ELParser.DotSuffix(ELParser.java:1067)
    org.apache.el.parser.ELParser.ValueSuffix(ELParser.java:1033)
    org.apache.el.parser.ELParser.Value(ELParser.java:978)
    org.apache.el.parser.ELParser.Unary(ELParser.java:948)
    org.apache.el.parser.ELParser.Multiplication(ELParser.java:712)
    org.apache.el.parser.ELParser.Math(ELParser.java:632)
    org.apache.el.parser.ELParser.Compare(ELParser.java:444)
    org.apache.el.parser.ELParser.Equality(ELParser.java:371)
    org.apache.el.parser.ELParser.And(ELParser.java:282)
    org.apache.el.parser.ELParser.Or(ELParser.java:226)
    org.apache.el.parser.ELParser.Choice(ELParser.java:183)
    org.apache.el.parser.ELParser.Expression(ELParser.java:175)
    org.apache.el.parser.ELParser.DynamicExpression(ELParser.java:147)
    org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:44)
    org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:116)
    org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:172)
    org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:217)
    org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:67)
    org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:984)
    org.apache.jsp.test_jsp._jspService(test_jsp.java:77)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

Looks like a solution would be perform this check on backend and save it as 
variable instead.

Original comment by saltnlight5 on 24 Sep 2011 at 1:33

GoogleCodeExporter commented 9 years ago
Fixed in 2.1.1 and 1.5.1

Original comment by saltnlight5 on 24 Sep 2011 at 5:10

GoogleCodeExporter commented 9 years ago

Original comment by saltnlight5 on 24 Sep 2011 at 5:10

GoogleCodeExporter commented 9 years ago
This issue was closed by revision 8a5074c4bbe5.

Original comment by saltnlight5 on 24 Sep 2011 at 5:28

GoogleCodeExporter commented 9 years ago
This issue was closed by revision 2e8692de1742.

Original comment by saltnlight5 on 24 Sep 2011 at 5:28