You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/04/01 20:51:11 UTC
DO NOT REPLY [Bug 18577] New: -
resources in $CATALINA_HOME/shared not found
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18577>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18577
resources in $CATALINA_HOME/shared not found
Summary: resources in $CATALINA_HOME/shared not found
Product: Tomcat 4
Version: 4.1.24
Platform: All
OS/Version: OS/400
Status: NEW
Severity: Normal
Priority: Other
Component: Catalina
AssignedTo: tomcat-dev@jakarta.apache.org
ReportedBy: bahbahbooie@go.com
I am using Tomcat 4.1.24 on an IBM iSeries (formerly AS/400).
I cannot access a class that resides in a JAR file (utilities.jar) in
$CATALINA_HOME/shared/lib and get a java.lang.NoClassDefFoundError.
I wrote a very simple servlet to reproduce this problem. It attempts to use
a class (CASDate) in the shared dir.
----
import com.myco.utilities.CASDate;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Test1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws javax.servlet.ServletException, java.io.IOException {
System.out.println("GET method of Test1 invloked");
performTask(request, response);
}
//
public void doPost(HttpServletRequest request, HttpServletResponse
response) throws javax.servlet.ServletException, java.io.IOException {
System.out.println("POST method of Test1 invloked");
performTask(request, response);
}
/**
* Test the use of a shared class.
*/
public void performTask(HttpServletRequest request, HttpServletResponse
response) {
try {
java.io.PrintWriter pw = response.getWriter();
CASDate today = new CASDate();
pw.println("CASDate today is " + today.toString());
pw.println("CASDate class loaded...");
}
catch(Throwable theException) {
System.out.println("Error...");
theException.printStackTrace(System.out);
}
}
}
----
This is the utility class (some getXXX methods deleted for brevity):
----
package com.myco.utilities;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CASDate {
private int ccc = 0;
private int yyy = 0;
private int mmm = 0;
private int ddd = 0;
private int time = 0;
/**
* Default constructor is to create CAS date using the current date.
*/
public CASDate() {
super();
GregorianCalendar cal = new GregorianCalendar();
ccc = 20;
yyy = cal.get(Calendar.YEAR) - 2000;
mmm = cal.get(Calendar.MONTH) + 1;
ddd = cal.get(Calendar.DAY_OF_MONTH);
}
/**
* Return a string in MM/DD/CCYY format.
*/
public String toString() {
String returnValue = getMonth() + "/" + getDay() + "/" +
getYearAndCentury();
return returnValue;
}
}
----
The error I get is:
java.lang.NoClassDefFoundError: com/myco/utilities/CASDate
When I moved utilities.jar to my <webapp>/WEB-INF/lib the error goes away so I
know it is not a coding error.
The error also goes away when I put the JAR file in $CATALINA_HOME/common/lib
but the documentation says:
"For classes and resources that must be shared across all web applications,
place unpacked classes and resources under $CATALINA_HOME/shared/classes, or
place JAR files containing those classes and resources under
$CATALINA_HOME/shared/lib."
Please update the documentation or fix the functionality to save others the
headaches I've experienced.
Thank you.
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org