You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2002/10/07 13:36:59 UTC
DO NOT REPLY [Bug 13357] New: -
happyaxis.jsp doen't handle NoClassDefFoundErrors.
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=13357>.
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=13357
happyaxis.jsp doen't handle NoClassDefFoundErrors.
Summary: happyaxis.jsp doen't handle NoClassDefFoundErrors.
Product: Axis
Version: 1.0-rc1
Platform: All
OS/Version: All
Status: NEW
Severity: Enhancement
Priority: Other
Component: Samples
AssignedTo: axis-dev@xml.apache.org
ReportedBy: Brian.Ewins@btinternet.com
I just had this problem reporting in an email from someone trying to trace a
problem seen in happyaxis.jsp using my own fingerprint.jsp, distributed with
axis (well if you stick your head above the parapet...).
The problem was that the classes searched for by happyaxis were being found ok,
but that classes they in turn depended on were not being found - in this case, I
believe javax.activation.DataSource, a dependency of mail.jar, wasn't being
found because the user had put activation.jar in the webapp, but mail.jar was in
the tomcat common lib directory.
This isnt a difficult problem to handle better - see code marked //BE below.:
int probeClass(JspWriter out,
String category,
String classname,
String jarFile,
String description,
String errorText,
String homePage) throws IOException {
try { //BE
Class clazz = classExists(classname);
if(clazz == null) {
String url="";
if(homePage!=null) {
url="<br> See <a href="+homePage+">"+homePage+"</a>";
}
out.write("<p>"+category+": could not find class "+classname
+" from file <b>"+jarFile
+"</b><br> "+errorText
+url
+"<p>");
return 1;
} else {
String location = getLocation(out, clazz);
if(location == null) {
out.write("Found "+ description + " (" + classname + ")<br>");
}
else {
out.write("Found "+ description + " (" + classname + ") at " +
location + "<br>");
}
return 0;
}
} catch(NoClassDefFoundError ncdfe) { //BE, and remainder of method
String url="";
if(homePage!=null) {
url="<br> See <a href="+homePage+">"+homePage+"</a>";
}
out.write("<p>"+category+": could not find a dependency of class
"+classname
+" from file <b>"+jarFile
+"</b><br> "+errorText
+url
+"<br>The root cause was: "+ncdfe.getMessage()
+"<br>This can happen e.g. if "+classname+" is in"
+" the 'common' classpath, but the dependency is"
+" only in the webapp classpath."
+"<p>");
return 1;
}
}
Steve, since I guess this will fall to you - if you want this sent as a patch
instead, just add that as a comment here, I'll get around to it later
today...dont have cvs handy just now.