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]