- From: David P. White <dpwhite@halcyon.com>
- Date: Fri, 11 Jun 1999 18:43:20 -0400 (EDT)
- To: Santiago Gala <nostromo@bitmailer.es>
- CC: Benoit.Mahe@sophia.inria.fr, www-jigsaw@w3.org
Santiago Gala wrote: > > It is fairly obvious (I think): > A class can not call a protected method unless they are in the same package. > Two classes are never in the same package if they are loaded by different class loaders. > Jigsaw uses a special classloader for servlets in "/servlets". It uses the standard system loader for servlets called through ServletWrapper. > > If I'm right, that explains the behaviour you found. > Thanks for the response and the info. I guess what you say about different class loaders is true because it makes a certain amount of sense and I don't know any differently. I am still just a bit confused so please excuse my ignorance... I have tried placing my servlet's class file both directly in jigsaw's /servlet subdir and within a subdir under /servlet. The /servlet subdir has a servlet indexer. It appears that when I access the servlet, jigsaw's indexer automatically builds a servlet wrapper. On the server's console, I also get a message printed like "Create Servlet : foo.servlets.TestServlet.class". I had assumed that the servlet was therefore being loaded somehow from within the wrapper. So if: (1) I am correct about the server creating and then using the wrapper and (2) you are correct that the standard system loader is being used to load the servlet via the wrapper; Then why should there be an access error when the servlet attempts to create an instance of a class that is NOT located under /servlet but is elsewhere on the classpath passed to java when the server was started? Am I missing something? Cheers, David
Received on Friday, 11 June 1999 18:45:36 UTC