Win a copy of Learn Spring Security (video course) this week in the Spring forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Tomcat 4.0 and JSP- problem using beans

 
Shivaji Marathe
Ranch Hand
Posts: 203
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
OK, I am sorting my way through the minimalist documentation that comes with Tomcat 4.0, the JSP QuickStart Guide (http://java.sun.com/products/jsp/html/jsptut.html)- which refers to Tomcat version 3.0, and the great tutorial at jsptut.com.
I have managed to run all the samples that come with Tomcat, I can run the samples that come with the Quickstart guide. I have even managed to follow through and write JSP code, based on the tuotrial at jsptut.com.
It is the JSP using Bean class that is giving me grief for almost one whole day.
I am using JDK 1.3.1, Tomcat 4.0.1 on a windows NT 4 PC.
I was running all the examples from the JSPTUT.com by placing them under the
tomcat_home/webapps/root folder , without any problem.
I created a bean class and placed the .java and the .class files under
tomcat_home/webapps/root/web_inf/classess folder,
but the compiler does not see the class.
Here is the error I get
Class org.apache.jsp.UserData not found.
After looking at the example from Sun's Quickstart, I changed the directory structure so that the .jsp and .html files are under
tomcat_home/webapps/mytutorial folder and the .java and .class files for the bean class are under tomcat_home/webapps/mytutorial/web-inf/classes folder. No luck still. In fact I am not even able to bring up the html file. I get the famous 404 error.
So my questions are :
How can I set up another folder under tomcat_home/webapps to contain all the code I am writing?
Where should I place the bean class files so that the JSP compiler can see them ? I saw in some examples that included an applet, they had used the "codebase" attribute. Do I have to use something similar with bean classes as well?

Thanks
 
Jason Brawner
Ranch Hand
Posts: 66
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Beans have to be in a package and the JSP's need to import that package. Place the package under the classes directory like \classes\mypackage\.
Then use the following to import the package:
<%@ import="mypackage.*" %>
Hope this helps,
 
Shivaji Marathe
Ranch Hand
Posts: 203
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Jason :
I tried that :
I recompiled the source file with a
package mypackage; statement and then copied the class file to tomcat_home\webapps\ROOT\WEB-INF\classes\mypackage folder
and I have the following import statement in my jsp file

<%@ page import="mypackage.*" %>

But I still get the error
"Class org.apache.jsp.UserData not found.". Why is the compiler looking for org.apache.jsp package structure?
Also how can I get this code to work under some other folder in the webapps folder ?
Thanks
 
Hari Haran
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I also had the same problem.
But I had a workaround and placed the classes under $CATALINA_HOME/common/classes.
Now it is working fine.
But I still dont understand why it doesnt work if I put in my application folder like
/WEB-INF/classes of your web application
If anybody can find a solution pls.post it.

But according to Tomcat documentation this is what they had to say:
"
Therefore, from the perspective of a web application, class or resource loading looks in the following repositories, in this order:
/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
Bootstrap classes of your JVM
System class loader classses (described above)
$CATALINA_HOME/common/classes
$CATALINA_HOME/common/lib/*.jar
$CATALINA_HOME/classes
$CATALINA_HOME/lib/*.jar
"
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic