Load up the debugger. That's what I would do. If your plugin is being
initialized twice, put a break point where that occurs and find out how this
is occurring. There obviously must be a configuration problem because I've
never seen this.

Paul

On Jan 3, 2008 12:28 PM, Edward Song <[EMAIL PROTECTED]> wrote:

> Hi Paul,
>
> Thanks for the reply, I understand that plugins apply for the entire
> framework.  However, I do NOT have the ActionServlet declared twice in my
> web.xml nor do I have multiple struts-config files.
>
> Here is my web xml for the action servlet.
>
> <servlet>
>        <description>Struts Action Servlet</description>
>        <servlet-name>action</servlet-name>
>
> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>        <init-param>
>                <param-name>config</param-name>
>
> <param-value>/WEB-INF/config/struts/struts-config.xml</param-value>
>        </init-param>
>        <load-on-startup>0</load-on-startup>
> </servlet>
>
>
> Also, my struts-config.xml....
>
> <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
>        <set-property property="pathnames"
> value="/WEB-INF/config/validator/validator-rules.xml
> ,/WEB-INF/config/validat
> or/validation.xml"/>
> </plug-in>
>
> <plug-in
> className="com.blah.blah.blah.plugin.ApplicationInitPlugin"></plug-in>
>
> <!-- Tiles plugin-->
> <plug-in className="org.apache.struts.tiles.TilesPlugin">
>        <set-property property="definitions-config"
> value="/WEB-INF/config/tiles/tiles-defs.xml" />
> </plug-in>
>
>
> So as far as I know, the ActionServlet.init() method should be called
> once.
> For me it executes twice.  I'm just trying to find out why this is the
> case.
>
>
> Edward Song
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
> Behalf Of Paul Benedict
> Sent: Thursday, January 03, 2008 1:15 PM
> To: Struts Users Mailing List
> Subject: Re: Struts 1.3.8 Plugins initializing twice
>
> Struts 1.4 contains the fix not to have plug-ins initialized twice. The
> fact
> is that there is no such thing as module plug-ins. Only plug-ins for the
> entire Struts framework. If you're seeing initialization twice, it's
> possible you have the plugin defined twice within the model or two modules
> with the same configuration.
>
> Paul
>
> On Jan 3, 2008 12:09 PM, Edward Song <[EMAIL PROTECTED]> wrote:
>
> > Thanks Randy for the feedback.
> >
> > I looked deeply into it and this is what I found....
> >
> > The ActionServlet's init() method is called twice.  (I don't know why, I
> > guess this is what I'm trying to find out...)
> >
> > There is a series of method calls in the ActionServlet.init() method...
> >
> > initModuleMessageResources(moduleConfig);
> > initModulePlugIns(moduleConfig);
> > initModuleFormBeans(moduleConfig);
> > initModuleForwards(moduleConfig);
> > initModuleExceptionConfigs(moduleConfig);
> > initModuleActions(moduleConfig);
> >
> > Most of these seem to have a check whether or not the module has already
> > been processed.  The initModulePlugins method does not seem to have this
> > check.
> >
> > Line 871
> > initModulePlugins();
> > plugIns[i].init(this, config);
> > No previous check if processed.
> >
> >
> > Where as for form-beans, in initModulePlugIns method, a
> > processFormBeanExtension method is called, which checks if it has
> already
> > been processed.
> >
> > Line 948-957
> > if (!beanConfig.isExtensionProcessed()) {
> >  if (log.isDebugEnabled()) {
> >       log.debug("Processing extensions for '"
> >                + beanConfig.getName() + "'");
> >  }
> >
> >  beanConfig = processFormBeanConfigClass(beanConfig, moduleConfig);
> >  beanConfig.processExtends(moduleConfig);
> > }
> >
> >
> > So it looks as though, the plugin modules, specifically, are not being
> > checked if they have already been processed.
> >
> > I'm not sure why, but probably there is some reason.
> > However, I still do not know why ActionServlet.init() is called twice.
> >
> >
> > Edward Song
> >
> > -----Original Message-----
> > From: Randy Burgess [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, January 03, 2008 11:56 AM
> > To: Struts Users Mailing List
> > Subject: Re: Struts 1.3.8 Plugins initializing twice
> >
> > This is from a Struts 1.2.8 app of mine.
> >
> >  <servlet>
> >    <servlet-name>action</servlet-name>
> >    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
> >    <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>3</param-value>
> >    </init-param>
> >    <init-param>
> >      <param-name>detail</param-name>
> >      <param-value>3</param-value>
> >    </init-param>
> >    <load-on-startup>0</load-on-startup>
> >  </servlet>
> >
> > You don¹t need the debug params but in this case it might not hurt. I
> > cannot
> > remember why but I believe that load on startup should always be 0 for
> > Struts 1.
> >
> > Regards,
> > Randy Burgess
> > Sr. Web Applications Developer
> > Nuvox Communications
> >
> >
> >
> >
> > From: Edward Song <[EMAIL PROTECTED]>
> > Reply-To: Struts Users Mailing List <user@struts.apache.org>
> > Date: Thu, 3 Jan 2008 10:56:40 -0500
> > To: <user@struts.apache.org>
> > Subject: Struts 1.3.8 Plugins initializing twice
> >
> > Hi all,
> >
> > Struts 1.3.8
> >
> > I have a single struts module and it seems as though my plugins are
> > getting
> > loaded twice.
> > This goes for the validator, tiles, and my own written plugins.
> >
> > I¹ve found out that if in the web.xml I do not specify a value for
> > <load-on-startup> then the ActionServlet is not initialized until it is
> > requested, and when it is requested it is initialized once.
> >
> > Web.xml
> > <servlet>
> >            <description>Struts Action Servlet</description>
> >            <servlet-name>action</servlet-name>
> >
> > <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
> >            <init-param>
> >                  <param-name>config</param-name>
> >
> > <param-value>/WEB-INF/config/struts/struts-config.xml</param-value>
> >            </init-param>
> >            <load-on-startup>2</load-on-startup>
> >      </servlet>
> >
> > However, if I add a value for <load-on-startup> it seems as though
> struts
> > is
> > initialized twice as I can see that the validator and tiles plugins are
> > loaded twice.  The struts manual says that the framework should be
> loaded
> > on
> > startup to ensure correct operation.
> >
> > Ed
> >
> >
> >
> > The information contained in this e-mail is legally privileged and
> > confidential information intended only for use by the  individual or
> > entity
> > named above.  If the reader of this e-mail is not the intended
> recipient,
> > you are hereby notified that any dissemination or distribution hereof is
> > prohibited.  If you have received this e-mail in error, please delete
> the
> > material from your computer and immediately notify us at   631-396-5000.
> > Thank you.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> >
> > The information contained in this e-mail is legally privileged and
> > confidential information intended only for use by the  individual or
> entity
> > named above.  If the reader of this e-mail is not the intended
> recipient,
> > you are hereby notified that any dissemination or distribution hereof is
> > prohibited.  If you have received this e-mail in error, please delete
> the
> > material from your computer and immediately notify us at   631-396-5000.
> >  Thank you.
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
>
> The information contained in this e-mail is legally privileged and
> confidential information intended only for use by the  individual or entity
> named above.  If the reader of this e-mail is not the intended recipient,
> you are hereby notified that any dissemination or distribution hereof is
> prohibited.  If you have received this e-mail in error, please delete the
> material from your computer and immediately notify us at   631-396-5000.
>  Thank you.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to