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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to