Re: Access Error in Servlet

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