Joe wrote: > I'm not getting any exceptions on startup, and the exact war file that I'm pointing is found because it's serving HTML > and even my servlet just fine. > But when I get a ServletContext, it's null. I've got a set of tomcat jars in the classpath (catalina, annorations-api, > tomcat-coyote, tomcat-juli, servlet-api)
I don't know if you are crossing contexts or not, but it doesn't look like you setCrossContext(true) on the context you created. Should you? The API only says the following for setCrossContext(boolean crossContext): "Set the "allow crossing servlet contexts" flag." However, the Tomcat configuration reference seems to state that all calls to getContext will return null unless you set the context's crossContext parameter to true. When the parameter is true, the configuration reference specifically states that other contexts will have access through the ServletContext.getContext() method. When it is set to false, the reference no longer mentions other contexts, it states that getContext() will always return null. I'm assuming that the setCrossContext method and crossContext parameter have the same effect. I don't know if any of this applies in your case. >From http://tomcat.apache.org/tomcat-6.0-doc/api/index.html: setCrossContext public void setCrossContext(boolean crossContext)Set the "allow crossing servlet contexts" flag. Specified by: setCrossContext in interface Context Parameters: crossContext - The new cross contexts flag >From http://tomcat.apache.org/tomcat-6.0-doc/config/context.html: crossContex: Set to true if you want calls within this application to ServletContext.getContext() to successfully return a request dispatcher for other web applications running on this virtual host. Set to false (the default) in security conscious environments, to make getContext() always return null. Bill -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Joe Walker Sent: Tuesday, July 15, 2008 10:59 AM To: users@tomcat.apache.org Subject: Embedded Tomcat Maybe I missed some docs somewhere, but my embedded Tomcat isn't working properly. I doing essentially this: Embedded embedded = new Embedded(); embedded.setCatalinaBase("."); Engine engine = embedded.createEngine(); Host host = embedded.createHost("localhost", "."); engine.addChild(host); Context context = embedded.createContext("/dwr", "target/ant/web/demo"); host.addChild(context); embedded.addEngine(engine); Connector connector = embedded.createConnector("localhost", 8080, false); embedded.addConnector(connector); embedded.start(); And my web-app starts OK, however the ServletContext seems to be null, so the web-app fails. I'm not getting any exceptions on startup, and the exact war file that I'm pointing is found because it's serving HTML and even my servlet just fine. But when I get a ServletContext, it's null. I've got a set of tomcat jars in the classpath (catalina, annorations-api, tomcat-coyote, tomcat-juli, servlet-api) Any clues where to look? Joe. --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]