HI,
For starters, you should override the init() method with no args, as
that's provided for your convenience.  It gets call from the one with
the ServletConfig arg.

Then, instead of saving a reference to the ServletConfig passed to init,
get a new one in your destroy method: in destroy, just have
ServletContext sc = getServletConfig().getServletContext();

I hope that helps,

Yoav Shapira
Millennium ChemInformatics


>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>Sent: Friday, September 13, 2002 7:12 AM
>To: Tomcat Users List
>Subject: Problem Loading Servlet on Server startup
>
>Hi,
>
>below is my current web.xml listed.
>As the first Servlet I am loading the InitAppServlet. The init(cfg
>ServletConfig) Methode lookes like:
>
>   public void init(ServletConfig cfg) throws ServletException
>     {
>          this.cfg = cfg;
>          this.ctx = cfg.getServletContext();
>          //initApp();
>
>     }//init()
>
>When I startup the application I get an Exception form the destroy()
>methode of the InitAppServlet is thrown.
>You can see below the thrown Execption
>As a strange thing: it already used to work!
>
>Does anyone have an idea?
>
>I am using Tomcat 4.0.1 on a Linux SuSE 7.3 Box, JDK 1.3.1
>
>thanks, rainer
>
>#####################################
>Exception:
>
>Servlet InitAppServlet threw unload() exception
>javax.servlet.ServletException: Servlet.destroy() for servlet
>InitAppServlet threw exception
> at
>org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:10
20)
> at
>org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1193
)
> at
>org.apache.catalina.core.StandardContext.reload(StandardContext.java:23
81)
> at
>org.apache.catalina.servlets.ManagerServlet.reload(ManagerServlet.java:
448)
> at
>org.apache.catalina.servlets.ManagerServlet.doGet(ManagerServlet.java:2
81)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
atio
>nFilterChain.java:247)
> at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
terC
>hain.java:193)
> at
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal
ve.j
>ava:243)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal
ve.j
>ava:201)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticato
rBas
>e.java:518)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.core.StandardContext.invoke(StandardContext.java:23
44)
> at
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav
a:16
>4)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherV
alve
>.java:170)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav
a:17
>0)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:46
2)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve
.jav
>a:163)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.
java
>:1011)
> at
>org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java
:110
>6)
> at java.lang.Thread.run(Thread.java:484)
>----- Root Cause -----
>java.lang.NullPointerException
> at
javax.servlet.GenericServlet.getServletContext(GenericServlet.java:205)
> at javax.servlet.GenericServlet.log(GenericServlet.java:300)
> at javax.servlet.GenericServlet.destroy(GenericServlet.java:122)
> at
>org.apache.catalina.core.StandardWrapper.unload(StandardWrapper.java:10
11)
> at
>org.apache.catalina.core.StandardWrapper.stop(StandardWrapper.java:1193
)
> at
>org.apache.catalina.core.StandardContext.reload(StandardContext.java:23
81)
> at
>org.apache.catalina.servlets.ManagerServlet.reload(ManagerServlet.java:
448)
> at
>org.apache.catalina.servlets.ManagerServlet.doGet(ManagerServlet.java:2
81)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic
atio
>nFilterChain.java:247)
> at
>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil
terC
>hain.java:193)
> at
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal
ve.j
>ava:243)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal
ve.j
>ava:201)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authenticato
rBas
>e.java:518)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.core.StandardContext.invoke(StandardContext.java:23
44)
> at
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav
a:16
>4)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherV
alve
>.java:170)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav
a:17
>0)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:46
2)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>564)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve
.jav
>a:163)
> at
>org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.j
ava:
>566)
> at
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
472)
> at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.
java
>:1011)
> at
>org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java
:110
>6)
> at java.lang.Thread.run(Thread.java:484)
>
>###########################################################
>
>web.xml:
>
><?xml version="1.0" encoding="ISO-8859-1"?>
>
><!DOCTYPE web-app
>    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
>    "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";>
>
><web-app>
>
> <context-param>
>  <param-name>mapserver_pfad</param-name>
>  <param-value>http://jspserver</param-value>
>  <!-- <param-value>http://development.projektinter.net/</param-value>
-->
>  <description>MapServer-Pfad</description>
> </context-param>
> <context-param>
>  <param-name>mapserver_cgi_pfad</param-name>
>  <param-value>/cgi-bin/mapserv</param-value>
>  <description>MapServer CGI Pfad</description>
> </context-param>
> <context-param>
>  <param-name>apache_pfad</param-name>
>  <param-value>%2Fusr%2Flocal%2Fhttpd%2Fhtdocs%2F</param-value>
>  <description>Pfad zum Apache Server unter dem sich das mapserver
>Verzichnis befindet</description>
> </context-param>
> <context-param>
>  <param-name>tomcat_pfad</param-name>
>  <param-value>%2Fusr%2Flib%2Fjakarta-tomcat-4.0.1%2F</param-value>
>  <description>Pfad des Tomcat Wurzelverzeichnis</description>
> </context-param>
> <context-param>
>  <param-name>application_name</param-name>
>  <param-value>wwa-m</param-value>
>  <description>Name der Application</description>
> </context-param>
>
>   <servlet>
>    <servlet-name>InitAppServlet</servlet-name>
>    <servlet-class>net.projektinter.wwam.util.InitAppServlet</servlet-
>class>
>    <init-param>
>      <param-name>fileName</param-name>
>      <param-value>system.out.println</param-value>
> </init-param>
> <init-param>
>   <param-name>logLevel</param-name>
>      <param-value>debug</param-value>
>    </init-param>
> <init-param>
>   <param-name>dbUrl</param-name>
>      <param-value>jdbc:mysql://localhost:3306</param-value>
>    </init-param>
> <init-param>
>   <param-name>dbName</param-name>
>      <param-value>wwa_m01</param-value>
>    </init-param>
> <init-param>
>   <param-name>dbDriver</param-name>
>      <param-value>org.gjt.mm.mysql.Driver</param-value>
>    </init-param>
> <init-param>
>   <param-name>dbPassword</param-name>
>      <param-value></param-value>
>    </init-param>
> <init-param>
>   <param-name>dbUser</param-name>
>      <param-value>root</param-value>
>    </init-param>
>    <load-on-startup>1</load-on-startup>
>  </servlet>
>
>
>  <!-- Standard Action Servlet Configuration (with debugging) -->
>   <servlet>
>    <servlet-name>action</servlet-name>
>    <servlet-class>PIActionServlet</servlet-class>
>    <init-param>
>      <param-name>application</param-name>
>      <param-value>ApplicationResources</param-value>
>    </init-param>
>    <init-param>
>      <param-name>config</param-name>
>      <param-value>/WEB-INF/struts-config.xml</param-value>
>    </init-param>
>    <init-param>
>      <param-name>debug</param-name>
>      <param-value>2</param-value>
>    </init-param>
>    <init-param>
>      <param-name>detail</param-name>
>      <param-value>1</param-value>
>    </init-param>
>    <init-param>
>      <param-name>validate</param-name>
>      <param-value>true</param-value>
>    </init-param>
>    <load-on-startup>2</load-on-startup>
>  </servlet>
>
>  <!-- Standard Action Servlet Mapping -->
>   <servlet-mapping>
>    <servlet-name>action</servlet-name>
>    <url-pattern>/app/*</url-pattern>
>  </servlet-mapping>
>
>
>  <!-- Struts Tag Library Descriptors -->
>  <taglib>
>    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
>    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
>  </taglib>
>
>  <taglib>
>    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
>    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
>  </taglib>
>
>  <taglib>
>    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
>    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
>  </taglib>
>
>  <taglib>
>    <taglib-uri>/WEB-INF/struts-form.tld</taglib-uri>
>    <taglib-location>/WEB-INF/struts-form.tld</taglib-location>
>  </taglib>
>
>   <taglib>
>    <taglib-uri>/WEB-INF/struts.tld</taglib-uri>
>    <taglib-location>/WEB-INF/struts.tld</taglib-location>
>  </taglib>
>
> <taglib>
>    <taglib-uri>/WEB-INF/logon.tld</taglib-uri>
>    <taglib-location>/WEB-INF/logon.tld</taglib-location>
>  </taglib>
> <resource-ref>
> <description>
>    Resource reference to a factory for java.sql.Connection
>    instances that may be used for talking to a particular
>    database that is configured in the server.xml file.
>  </description>
>  <res-ref-name>jdbc/wwa-mDB</res-ref-name>
>  <res-type>javax.sql.DataSource</res-type>
>  <res-auth>Container</res-auth>
></resource-ref>
>
></web-app>

This e-mail, including any attachments, is a confidential business communication, and 
may contain information that is confidential, proprietary and/or privileged.  This 
e-mail is intended only for the individual(s) to whom it is addressed, and may not be 
saved, copied, printed, disclosed or used by anyone else.  If you are not the(an) 
intended recipient, please immediately delete this e-mail from your computer system 
and notify the sender.  Thank you.

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to