W3C home > Mailing lists > Public > www-jigsaw@w3.org > May to June 1999

Re: Access Error in Servlet

From: David P. White <dpwhite@halcyon.com>
Date: Fri, 11 Jun 1999 18:43:20 -0400 (EDT)
Message-ID: <37619199.78E1@halcyon.com>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 9 April 2012 12:13:29 GMT