August 4, 2009

JSP: Syntax error on token(s), misplaced construct(s)

Topic:  JSP 2.0

Application Server: JBoss 4.0.2 / Tomcat 5.5.9

Exception:

An error occurred at line: 10 in the jsp file: /Test.jsp
Generated servlet error:
Syntax error on token(s), misplaced construct(s)

An error occurred at line: 10 in the jsp file: /Test.jsp
Generated servlet error:
Syntax error on token ""abcd"", delete this token


 org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
 org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
 org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:397)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:288)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)

Resolution:

The JSP Declaration element starts with the sequence <%! – any code that goes within a JSP declaration lands up outside the service() method and within the translated JSP class. Therefore, this code should be a legitimate class level code, that is, either an instance variable declaration or a method definition. Program statements within a declaration element cannot be outside a method. Removal of program statements from the JSP declaration removes this exception.

No comments:

Post a Comment