Hi,

First off, let me apologise for the level of detail in
this message; if possible, I'd have made it shorter.

Anyway, I'm trying to learn J2EE; Tomcat seemed like a
good choice to learn the underlying technology, rather
than a particular JSP/Servlet container's deployment
tool. I can get 'plain' JSP pages working fine.

Unfortunately, I'm having major problems developing my
own Javabeans applications for Tomcat; they all fail
as shown below. The demos that come with Tomcat work
fine (although I can't get the demo at
http://jakarta.apache.org/tomcat/tomcat-5.5-doc/appdev/sample
to work; However- that's another story)

I understand that I should simply be able to drop the
directory structure containing my program into
$CATALINA_HOME/webapps, restart Tomcat (I'm using
5.5.7) and have it work.
Its contents (root:root ownership, Tomcat running as
root) is:-
        skeleton
        skeleton/subapp
        skeleton/subapp/skeleton.jsp
        skeleton/WEB-INF
        skeleton/WEB-INF/classes
        skeleton/WEB-INF/lib
        skeleton/WEB-INF/lib/subapp
        skeleton/WEB-INF/lib/subapp/Beany.class
        skeleton/WEB-INF/lib/subapp/Beany.java
        skeleton/WEB-INF/lib/subapp.jar
        skeleton/WEB-INF/web.xml
Contents of files listed at end of message.

Here's what happens when I try to run it:-
(1) When I try to access
       
http://localhost:8080/skeleton/subapp/skeleton.jsp
with the setup as above, I get
        HTTP Status 404 - Servlet
        org.apache.jsp.subapp.skeleton_jsp
        is not available
        message Servlet
        org.apache.jsp.subapp.skeleton_jsp
        is not available

(2) If I move skeleton/WEB-INF/lib/subapp to
skeleton/WEB-INF/classes/subapp,
I get
        HTTP STATUS 500 - EXCEPTION REPORT
        The server encountered an internal error ()
        that prevented it from fulfilling this
        request.
        EXCEPTION
        javax.servlet.ServletException: Wrapper
        cannot find servlet class
        org.apache.jsp.subapp.skeleton_jsp
        or a class it depends on
       
    
org.apache.catalina.valves.ErrorReportValve.invoke
                                       
        (ErrorReportValve.java:105)
        [... SNIP ...]
        java.lang.Thread.run(Thread.java:595)

        ROOT CAUSE
        java.lang.ClassNotFoundException:
        org.apache.jsp.subapp.skeleton_jsp
       
org.apache.catalina.loader.WebappClassLoader.loadClass
                                       
        (WebappClassLoader.java:1332)
        [... SNIP ...]
        java.lang.Thread.run(Thread.java:595)

(3) If I remove the deployment descriptor altogether,
I get:-
        HTTP STATUS 500 - EXCEPTION REPORT
        The server encountered an internal error ()
        that prevented it from fulfilling this
        request.
        EXCEPTION
        org.apache.jasper.JasperException:
        /subapp/skeleton.jsp(2,0) The
        value for the useBean class attribute
        subclass.Beany is invalid.
       
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
        [... SNIP
...]
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

In short, it fails; in three noticeably different
ways, granted; but it still
fails. What on EARTH am I doing wrong or missing out?!
I'd really appreciate
some feedback on this. Thank you in advance.

============================================================
Here are the files:-

********** SKELETON.JSP:
<html>
<jsp:useBean id="beanId" class="subclass.Beany"
scope="session" />
<head><title>Foo Bar</title></head>
<body>
<h1>Foo Bar</h1>
Duzzy wuzzy was a duck; ducky fuzzy duck a wuzz blah
blah some more yak.
</body>
</html>
-----------------------------------------------------------
********** WEB.XML
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright 2004 The Apache [SNIP] -->
<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">

  <display-name>Display Name</display-name>
  <description>
     Display Description
  </description>

<!-- JSPC servlet mappings start -->

    <servlet>
       
<servlet-name>org.apache.jsp.subapp.skeleton_jsp</servlet-name>
       
<servlet-class>org.apache.jsp.subapp.skeleton_jsp</servlet-class>
    </servlet>

    <servlet-mapping>
       
<servlet-name>org.apache.jsp.subapp.skeleton_jsp</servlet-name>
       
<url-pattern>/subapp/skeleton.jsp</url-pattern>
    </servlet-mapping>

<!-- JSPC servlet mappings end -->

-----------------------------------------------------------
-----------------------------------------------------------
********** BEANY.JAVA
package subapp;

public class Beany
{
   private int first;

   /** Public no-args constructor */
   public Beany()
   {
      first = 404;
   }

   public int getFirst()
   {
      return first;
   }
   public void setFirst(int first)
   {
      this.first = first;
   }

   public String stringy = "Original Value";
   public String getStringy()
   {
      return stringy;
   }
   public void setStringy(String stringy)
   {
      this.stringy = stringy;
   }
}

--------------------------------------
The Beany.jar file contains the Beany.java and
Beany.class files


                
___________________________________________________________ 
Too much spam in your inbox? Yahoo! Mail gives you the best spam protection for 
FREE! http://uk.mail.yahoo.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to