You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Ben <jd...@web.de> on 2004/06/05 03:59:40 UTC

value for useBean class attribute invalid

Hi there,

I'm trying to set up a simple beans backed jsp application. I set up 
everything, the bean compiles, the context for the web app is set. But 
after reading around on a number of mailing lists and ruling out the 
most common mistakes (no package, useBean misspelled, no full class name 
used in useBean class= etc.) and after reading the tomcat class not 
found page, I'm pretty sure that something beyond my making a mistake is 
going on...

I greatly appreciate any help, as I am stumped and utterly puzzled at 
this...

thanks, Ben

Below find:
1. directory structure
2. stack trace
3. primitive-test.jsp
4. PrimitiveBean.jsp
5. web.xml
6. relevant part of /conf/server.xml

I'm running:
* Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-117.1)
* Java HotSpot(TM) Client VM (build 1.4.2-34, mixed mode)
* tomcat 5.0.25
* OS X 10.3.4

---

The only "unconventional" thing I'm doing is that my folder structure is 
as follows (which shouldn't matter because I set the docbase, and tomcat 
finds my jsps without complaint).

/webapps
   /node
     /src
       /bundle
       /java
     /www
       /WEB-INF
         /classes
           /my
             /packages
               /PrimitiveBean.class
         /lib
         /web.xml
       /pages
         /primitive-test.jsp

Stack trace from tomcat/logs
----------------------------
2004-06-04 21:34:19 StandardWrapperValve[jsp]: Servlet.service() for 
servlet jsp threw exceptionorg.apache.jasper.JasperException: 
/pages/primitive-test.jsp(11,0) The value for the useBean class 
attribute my.packages.PrimitiveBean is invalid.        at 
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39) 
        at 
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:376) 
        at 
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:150) 
        at 
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1217) 
        at 
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)        at 
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)        at 
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213) 
  at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219) 
   at org.apache.jasper.compiler.Node$Root.accept(Node.java:456) 
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)        at 
org.apache.jasper.compiler.Generator.generate(Generator.java:3261) 
   at 
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:244) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:461) 
      at org.apache.jasper.compiler.Compiler.compile(Compiler.java:442) 
        at 
org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)        at 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511) 
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274) 
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 
        at 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) 
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) 
  at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237) 
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) 
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198) 
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152) 
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102) 
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
        at 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104) 
        at 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
      at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793) 
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702) 
        at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571) 
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644) 
        at java.lang.Thread.run(Thread.java:552)

primitive-test.jsp
------------------
<html
   xmlns:jsp="http://java.sun.com/JSP/Page"
   xmlns:c="http://java.sun.com/jsp/jstl/core"
   xmlns:fn="http://java.sun.com/jsp/jstl/functions"
   xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
   xmlns="http://www.w3.org/1999/xhtml"
 >

<jsp:directive.page contentType="text/html"/>

<jsp:useBean id="simple" class="my.packages.PrimitiveBean" scope="session"/>

<!-- just to prove that jsp and EL are generally working -->
<head>
   <title>${5/8}</title>
</head>
<body>
   <p>
     This is just a test.
   </p>
</body>
</html>

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

PrimitiveBean.java
------------------
package my.packages;

public class PrimitiveBean implements java.io.Serializable
{
   String content = "PrimitiveBean says hi!";

   PrimitiveBean() {
   }

   public String getContent() {
     return content;
   }

   public void setContent (String content) {
     this.content = content;
   }

}  // end of class

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

my deployment descriptor
web.xml
------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
       http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
     version="2.4">

   <!-- Used by the JSTL I18N actions -->
   <context-param>
     <param-name>
       javax.servlet.jsp.jstl.fmt.fallbackLocale
     </param-name>
     <param-value>
       en
     </param-value>
   </context-param>

   <!-- Used by the JSTL database actions -->
   <context-param>
     <param-name>
       javax.servlet.jsp.jstl.sql.dataSource
     </param-name>
     <param-value>
       jdbc:mysql:///test,org.gjt.mm.mysql.Driver
     </param-value>
   </context-param>

   <!-- Servlet for showing JSP source. NOTE! Remove this in production -->
   <!--
   <servlet>
     <servlet-name>jspSource</servlet-name>
     <servlet-class>JSPSourceServlet</servlet-class>
   </servlet>

   <servlet-mapping>
     <servlet-name>jspSource</servlet-name>
     <url-pattern>/jspSource/*</url-pattern>
   </servlet-mapping>
   -->
</web-app>

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

the relevant section of my context registration
tomcat/conf/server.xml
----------------------
<Context 
debug="0"docBase="/Users/ben/Development/tomcat5/webapps/node/www"path="/node" 
reloadable="true"/>



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org