Just thinking out loud here, but...

What if from your plug-in you spawn a thread that will:

(1) Wait a few second, to allow the app to otherwise initialize completely
(2) Make a request to a special Action that will do the rest of the 
initialization that requires the URL (should be able to do 
http://localhost/myapp)
(3) Die

I do something similar for database initialization... I spaw a thread from the 
plug-in, wait a few seconds, then make a call to my database connection manager 
class, which has the effect of creating the connection pool.  This way I know 
it's done before the first request comes in.  Similar kind of idea.

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Wed, January 26, 2005 10:12 am, Martin Wegner said:
> David,
> 
> My Struts app contains an Axis-based SOAP service.  The Struts app
> initializes the call dispatcher for the SOAP service.  This dispatcher
> needs to know the URL of itself.  This is a requirement of the semantics
> of the SOAP service (outside of my control).  So a Listener or a Plug In
> appear to be the only way to try to determine the URL before the SOAP
> service is open for business.
> 
> Thanks.
> 
> 
> --Marty
> 
> --- David Suarez <[EMAIL PROTECTED]> wrote:
> 
>> Is your plug-in a 3rd party type component?  What is the purpose of
>> obtaining the URL?  Maybe there's a suitable alternative depending on
>> your requirements (ie. A Filter that would instantiate the objects you
>> need to populate on the first request?  A base action that lazy loads
>> your config stuff?)
>>
>> Just a thought...djsuarez
>>
>> -----Original Message-----
>> From: Martin Wegner [mailto:[EMAIL PROTECTED]
>> Sent: Wednesday, January 26, 2005 12:18 AM
>> To: Struts Users Mailing List; Dakota Jack
>> Subject: Re: PlugIn and the base URL
>>
>>
>> I am looking for the:
>>
>>     http://blahblahblah.com:8080/AppName/
>>
>> As Craig said I can get that if I have a Request object.  But from a
>> PlugIn I don't have that.  I can think of some ugly hacks but nothing
>> clean.
>>
>>
>> --Marty
>>
>> --- Dakota Jack <[EMAIL PROTECTED]> wrote:
>>
>> > Do you want the URL or the Internet Protocol address?  I have some
>> > ideas on the latter.
>> >
>> > Jack
>> >
>> >
>> > On Tue, 25 Jan 2005 21:05:30 -0800 (PST), Martin Wegner
>> > <[EMAIL PROTECTED]> wrote:
>> > > Jack,
>> > >
>> > > That tells me where the JAR files are stored which is cool.  But
>> what
>> > I am
>> > > looking for a valid URL (of which there may be many) to access my
>> > given
>> > > web application.  This info has to come from the container which may
>> > be
>> > > the problem.  I don't see anything in the container standard which
>> > > provides this info.
>> > >
>> > > Any other ideas?
>> > >
>> > > --Marty
>> > >
>> > > --- Dakota Jack <[EMAIL PROTECTED]> wrote:
>> > >
>> > > > Not sure what you want.  Does this help?
>> > > >
>> > > > package whatever;
>> > > >
>> > > > import java.io.File;
>> > > > import java.net.URL;
>> > > >
>> > > > public final class Classpath {
>> > > >   public static final String SLASH        = File.separator;
>> > > >   public static final String HERE         =
>> > > > Classpath.class.getClassLoader().getResource("whatever" + SLASH +
>> > > >
>> > > > "Classpath.class").getFile();
>> > > > }
>> > > >
>> > > >
>> > > > On Tue, 25 Jan 2005 19:25:21 -0800 (PST), Martin Wegner
>> > > > <[EMAIL PROTECTED]> wrote:
>> > > > >
>> > > > > As far as I can tell the attributes offer no insight.  I have
>> yet
>> > to
>> > > > find
>> > > > > a way to get to the container from within a PlugIn.  But I will
>> > keep
>> > > > > looking.  Using an initParam is not an option in this
>> application.
>> > > > >
>> > > > > --Marty
>> > > > >
>> > > > > --- "Frank W. Zammetti" <[EMAIL PROTECTED]> wrote:
>> > > > >
>> > > > > > The OP was looking for a way to construct the entire path.  I
>> > too
>> > > > got as
>> > > > > >
>> > > > > > far as ServletContext, but I'm not sure what in it would give
>> > you
>> > > > that,
>> > > > > > or even all the pieces to constuct it... Maybe getAttribute()?
>>
>> > I'm
>> > > > not
>> > > > > > sure what it will return, although you can use
>> > getAttributeNames()
>> > > > to
>> > > > > > see.  The Javadocs indicates the attributes are
>> > container-specific
>> > > > > > though, so I'm not sure he'd want to use that anyway.
>> > > > > >
>> > > > > > This is just a matter of curiosity for me at this point, I
>> long
>> > ago
>> > > > > > solved this problem another way.  I'd like to know how to do
>> it
>> > > > though.
>> > > > > >
>> > > > > > --
>> > > > > > Frank W. Zammetti
>> > > > > > Founder and Chief Software Architect
>> > > > > > Omnytex Technologies
>> > > > > > http://www.omnytex.com
>> > > > > >
>> > > > > >
>> > > > > > Jim Barrows wrote:
>> > > > > > > On Tue, 25 Jan 2005 18:37:29 -0500, Frank W. Zammetti
>> > > > > > > <[EMAIL PROTECTED]> wrote:
>> > > > > > >
>> > > > > > >>I seem to remember trying to solve this problem myself and
>> > coming
>> > > > to
>> > > > > > the
>> > > > > > >>conclusion that there was no way to do it independent of a
>> > > > request.  I
>> > > > > > >>wound up just sticking it in my application config file that
>> > gets
>> > > > read
>> > > > > > >>in the plugin anyway.  Can anyone prove me wrong? :)
>> > > > > > >
>> > > > > > >
>> > > > > > > Your looking for the application context correct?
>> > > > > > > In the init you are passed the ActionServlet, which inherits
>> > from
>> > > > > > > HttpServlet, which will give you the ServletContext.  IIRC
>> you
>> > can
>> > > > get
>> > > > > > > the context from there.
>> > > > > > >
>> > > > > > >
>> > > > > > >>--
>> > > > > > >>Frank W. Zammetti
>> > > > > > >>Founder and Chief Software Architect
>> > > > > > >>Omnytex Technologies
>> > > > > > >>http://www.omnytex.com
>> > > > > > >>
>> > > > > > >>Martin Wegner wrote:
>> > > > > > >>
>> > > > > > >>>In have a Struts PlugIn that needs to determine the URL for
>> > the
>> > > > > > containing
>> > > > > > >>>web application (http://localhost:8080/BlahBlahBlah/).  I
>> am
>> > > > unable
>> > > > > > to
>> > > > > > >>>find a way to determine this information.  Any ideas?
>> > > > > > >>>
>> > > > > > >>>Thanks.
>> > > > > > >>>
>> > > > > > >>>
>> > > > > > >>>--Marty
>> > > > > > >>>
>> > > > > > >>>
>> > > > > >
>> > > >
>> >
>> >>>---------------------------------------------------------------------
>> > > > > > >>>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]
>> > > > > > >>
>> > > > > > >>
>> > > > > > >
>> > > > > > >
>> > > > > > >
>> > > > > >
>> > > > > > --
>> > > > > > Frank W. Zammetti
>> > > > > > Founder and Chief Software Architect
>> > > > > > Omnytex Technologies
>> > > > > > http://www.omnytex.com
>> > > > > >
>> > > > > >
>> > > > > >
>> > > >
>> > ---------------------------------------------------------------------
>> > > > > > 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]
>> > > > >
>> > > > >
>> > > >
>> > > >
>> > > > --
>> > > > ------------------------------
>> > > >
>> > > > "You can lead a horse to water but you cannot make it float on its
>> > > > back."
>> > > >
>> > > > ~Dakota Jack~
>> > > >
>> > > > "You can't wake a person who is pretending to be asleep."
>> > > >
>> > > > ~Native Proverb~
>> > > >
>> > > > "Each man is good in His sight. It is not necessary for eagles to
>> be
>> > > > crows."
>> > > >
>> > > > ~Hunkesni (Sitting Bull), Hunkpapa Sioux~
>> > > >
>> > > > -----------------------------------------------
>> > > >
>> > > > "This message may contain confidential and/or privileged
>> > information.
>> > > > If you are not the addressee or authorized to receive this for the
>> > > > addressee, you must not use, copy, disclose, or take any action
>> > based
>> > > > on this message or any information herein. If you have received
>> this
>> > > > message in error, please advise the sender immediately by reply
>> > e-mail
>> > > > and delete this message. Thank you for your cooperation."
>> > > >
>> > > >
>> > ---------------------------------------------------------------------
>> > > > 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]
>> > >
>> > >
>> >
>> >
>> > --
>> > ------------------------------
>> >
>> > "You can lead a horse to water but you cannot make it float on its
>> > back."
>> >
>> > ~Dakota Jack~
>> >
>> > "You can't wake a person who is pretending to be asleep."
>> >
>> > ~Native Proverb~
>> >
>> > "Each man is good in His sight. It is not necessary for eagles to be
>> > crows."
>> >
>> > ~Hunkesni (Sitting Bull), Hunkpapa Sioux~
>> >
>> > -----------------------------------------------
>> >
>> > "This message may contain confidential and/or privileged information.
>> > If you are not the addressee or authorized to receive this for the
>> > addressee, you must not use, copy, disclose, or take any action based
>> > on this message or any information herein. If you have received this
>> > message in error, please advise the sender immediately by reply e-mail
>> > and delete this message. Thank you for your cooperation."
>> >
>> > ---------------------------------------------------------------------
>> > 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]
> 
> 

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

Reply via email to