>From the servlet api:
Returns a ServletContext object that corresponds to a specified URL on
the server.
This method allows servlets to gain access to the context for various
parts of the server, and as needed obtain RequestDispatcher objects from the
context. The given path must be begin with "/", is interpreted relative to
the server's document root and is matched against the context roots of other
web applications hosted on this container.
In a security conscious environment, the servlet container may return null
for a given URL.
Parameters:
uripath - a String specifying the context path of another web application in
the container.Returns:
the ServletContext object that corresponds to the named URL, or null if
either none exists or the container wishes to restrict this access.
Is it possible that tomcat returns null by default? I started digging
through source for you, but you might have to do some more digging.
I checked the source for:
org.apache.catalina.core.StandardContext
Notice this interesting source comment (I don't know where it gets set at
runtime, however):
/**
* Should we allow the <code>ServletContext.getContext()</code> method
* to access the context of other web applications in this server?
*/
private boolean crossContext = false;
and also some getters and setters:
/**
* Return the "allow crossing servlet contexts" flag.
*/
public boolean getCrossContext() {
return (this.crossContext);
}
/**
* Set the "allow crossing servlet contexts" flag.
*
* @param crossContext The new cross contexts flag
*/
public void setCrossContext(boolean crossContext) {
boolean oldCrossContext = this.crossContext;
this.crossContext = crossContext;
support.firePropertyChange("crossContext",
new Boolean(oldCrossContext),
new Boolean(this.crossContext));
}
You should definitely take a look at
org.apache.catalina.core.ApplicationContext.java
since it implements ServletContext for tomcat -- that will show you where to
trace the source path. it also has an interesting inner class at the top
called :
protected class PrivilegedGetRequestDispatcher
implements PrivilegedAction {
good luck
fillup
On 6/4/02 2:44 PM, "Jonathan Perry" <[EMAIL PROTECTED]> wrote:
> Anybody? Please? This is really doing my head in.
>
> Thanks a lot,
> JP
>
> On 4/6/02 10:51 am, "Jonathan Perry" <[EMAIL PROTECTED]> wrote:
>
>> Hi,
>> I'm running jakarta-tomcat-4.0.3 on Mac OSX. I've got two contexts set
>> up, "A", and "B". Both have crossContext="true" in their section of
>> server.xml. I have a copy of a servlet in each context, which has the
>> following lines of code:
>>
>> ServletContext c = getServletContext( ).getContext( "/A/" );
>> RequestDispatcher dispatcher = c.getRequestDispatcher( "/helloWorld.jsp" );
>>
>> This code works as expected in context A, but fails to obtain a context
>> (simply returning null, no exceptions thrown) in context B. I've searched
>> through archives on several sites, including this one, and haven't found
>> anything promising. Does anyone have any ideas of what I might be doing
>> wrong?
>>
>> Thanks for your time,
>> JP
>>
>>
>> --
>> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
>> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>
> --
> To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>