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]

Reply via email to