Thanks Craig for your reply... Yes I read about using the init(ServletConfig config) version of init in the Javadocs... Trouble is I am not using this version of init, but AM using the parameterless version... :-( SO no joy yet! Perhaps I will try the parameter version and see if that helps...
Marc... ----- Original Message ----- From: "Craig R. McClanahan" <[EMAIL PROTECTED]> To: "Tomcat Users List" <[EMAIL PROTECTED]> Sent: Sunday, February 16, 2003 3:52 PM Subject: Re: getServletConfig returning null > > > On Sun, 16 Feb 2003, Marc Chamberlin wrote: > > > Date: Sun, 16 Feb 2003 14:33:12 -0800 > > From: Marc Chamberlin <[EMAIL PROTECTED]> > > Reply-To: Tomcat Users List <[EMAIL PROTECTED]> > > To: Tomcat Users List <[EMAIL PROTECTED]> > > Subject: getServletConfig returning null > > > > Hello > > I am trying to understand how servlet configuration and initialization parameters >work and am running into a difficulty in Tomcat > > Version 4.1.18 I have the following configuration in in web.xml file - > > > > <servlet> > > <servlet-name>StarChartServlet</servlet-name> > > <servlet-class>starchart.StarChartServlet</servlet-class> > > <init-param> > > <param-name>starChartWorkingDirectory</param-name> > > <param-value>C:\temp\</param-value> > > </init-param> > > </servlet> > > > > In the servlets init method, I have the following code: > > > > try { > > starChartWorkingDirectory = >getServletConfig().getInitParameter("starChartWorkingDirectory"); > > } catch (java.lang.Exception ie) { > > System.out.println("Init Exception = " + ie.toString()); > > } > > > > and I am getting a null pointer exception thrown here... Nothing else appears to >be wrong in the log files and the servlet does > > function except for this issue. Any help and guidance would be much appreciated! >Thanks... > > > > The simplest way to cause this problem is to mess up your > init(ServletConfig) method, and forget to call super.init(config) before > calling getServletConfig(): > > public void init(ServletConfig config) throws ServletException { > ... do some stuff but ... > ... do not call super.init(config) ... > String foo = getServletConfig().getInitParameter("foo"); // NPE > super.init(config); > String bar = getServletConfig().getInitParameter("bar"); // Works > } > > The superclass init() method is where a pointer to the initial > ServletConfig object gets saved, so that getServletConfig() can find it. > > To avoid ever embarassing yourself with this mistake (trust me, nearly > everyone who programs servlets makes it at least once :-), you should > change your servlets to use the no-args version of init(): > > public void init() throws ServletException { > ... do some stuff ... > } > > because the container will call the init(ServletConfig) method in the base > class, which will in turn call your init() method -- no risk of forgetting > the superclass call. > > > Marc... > > > > Craig > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]