I tested your code, the init is called exactly once, when Tomcat starts.

Try one of these:

1) Change
   log.info("TestServlet init");
   log.info("TestServlet destroy");

   to something else like

   log.info("TestServlet init ############## ");
   log.info("TestServlet destroy ##############");

   Re-compile, re-start TC if necessary and
   check if you see 2 different outputs on the console.


2) If you see the same output twice, that is if you see

   log.info("TestServlet init ############## ");
   log.info("TestServlet init ############## ");

   log.info("TestServlet destroy ##############");
   log.info("TestServlet destroy ##############");

   then check web.xml if the same Servlet is defined twice under
different names.

3) Globally search for "TestServlet init" and see if it appears in
more than one Servlet that may be visible to the current installation
of Tomcat.

-Regards
Rashmi

On 4/30/07, Rashmi Rubdi <[EMAIL PROTECTED]> wrote:
On 4/30/07, sc <[EMAIL PROTECTED]> wrote:
>
> As you suggested, I started from scratch. I downloaded tomcat 6 from
> apache.org. changed $catalina_home to point to the new directory. Under
> $catalina_home/webapps, I created a new folder, which only has one servlet
> TestServlet
>

Do a global search on your projects and also on C: or Home drive to
see if this line of code is defined in an additional Servlet that is
visible to the current installation of Tomcat:

log.info("TestServlet init");

I know you mentioned that there's only one Servlet under webapps, but
just in case...

I also see super.init(config); but that shouldn't cause the
TestServlet's init method to be called twice.

>
> public class TestServlet extends HttpServlet
> {
>     private Log log = LogFactory.getLog(this.getClass().getName());
>
>     //public void init() throws ServletException
>     public void init(ServletConfig config) throws ServletException
>     {
>         super.init(config);
>         log.info("TestServlet init");
>
>     }
>
>     public void destroy()
>     {
>         log.info("TestServlet destroy");
>     }
> }
>
>
> My web.xml as following:
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd";
>     version="2.5">
>
>
>     <display-name>Hello, World Application</display-name>
>     <description>
>         This is a simple web application with a source code organization
>         based on the recommendations of the Application Developer's Guide.
>     </description>
>
>
>     <servlet>
>         <servlet-name>test</servlet-name>
>         <servlet-class>com.trip.view.TestServlet</servlet-class>
>          <load-on-startup>1</load-on-startup>
>     </servlet>
>
>     <servlet-mapping>
>         <servlet-name>test</servlet-name>
>         <url-pattern>/test</url-pattern>
>     </servlet-mapping>
>
> </web-app>
>
> I didn't do any changes to the new installation of tomcat. Then I started
> tomcat and shutdown it.
> The log showed the following entries:
> 2007-04-30 12:35:27,968 [main] INFO  com.cutetrip.view.TestServlet -
> TestServlet init
> 2007-04-30 12:35:27,968 [main] INFO  com.cutetrip.view.TestServlet -
> TestServlet init
> 2007-04-30 12:35:40,046 [main] INFO  com.cutetrip.view.TestServlet -
> TestServlet destroy
> 2007-04-30 12:35:40,046 [main] INFO  com.cutetrip.view.TestServlet -
> TestServlet destroy
>
> Since I just downloaded Tomcat, it is likely the double init is caused by my
> application or local environment setting. Anywhere I should look at? I am
> very puzzled.
> Thanks.

I will try to replicate this.

Regards
-Rashmi


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to