Bug 19097 - JSP Pages that are designated as is-xml give an exception
Summary: JSP Pages that are designated as is-xml give an exception
Status: RESOLVED INVALID
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Jasper (show other bugs)
Version: 5.0.0
Hardware: Other other
: P3 normal (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-04-16 22:33 UTC by Prasad Subramanian
Modified: 2004-11-16 19:05 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Prasad Subramanian 2003-04-16 22:33:56 UTC
The following exception is thrwon from JSP that is configured as is xml :

-----------------------
org.apache.jasper.JasperException: null(3,44) The prefix "jsp" for element
"jsp:useBean" is not bound.
	at
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:83)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:363)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:259)
	at org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:206)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:225)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:150)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:137)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:246)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:452)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:438)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:288)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2701)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:186)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:512)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:196)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:630)
	at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:464)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:568)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:631)
	at java.lang.Thread.run(Thread.java:536)

root cause

org.xml.sax.SAXParseException: The prefix "jsp" for element "jsp:useBean" is not
bound.
	at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1139)
	at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
	at org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:198)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:225)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:150)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:137)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:246)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:452)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:438)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:565)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:288)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:196)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2701)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:186)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:163)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:512)
	at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:552)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1017)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:196)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:630)
	at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:464)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:568)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:631)
	at java.lang.Thread.run(Thread.java:536)

-----------------------

This is the JSP :
---------------------
<?xml version="1.0" ?>
<HTML>
<jsp:useBean id="foo" class="my.FooBean" />


<jsp:setProperty name="foo" property="bar" value="barValue" >

</jsp:setProperty>
<table>
   <tr><th> Property Name</th><th> Property Value</th></tr>
      <tr><td> bar </td><td>${foo.bar}</td></tr>
</table>
</HTML>
~
Comment 1 Kin-Man Chung 2003-04-16 23:57:16 UTC
In xml syntax, all namespace, including "jsp", used as prefix in an xml element
must be defined and in scope.  The error message is clear on this.

To fix the problem, you can place the definition of "jsp" at the xml root:

	<HTML xmlns:jsp="http://java.sun.com/JSP/Page">

Or you can do it at each of the jsp elements, such as

	<jsp:useBean id="foo" class="my.FooBean"
xmlns:jsp="http://java.sun.com/JSP/Page"/>

and similarily for <jsp:setProperty>

You can even use a different prefix, such as

	<wombat:useBean id="foo" class="my.FooBean"
xmlns:wombat="http://java.sun.com/JSP/Page"/>

as long as you specify the correct uri for JSP.