Alternatively, you could create a batch file (or shell script for *nix systems) that updates the WAR with a config file that contains nothing but the URL (maybe just a .properties file in WEB-INF, nothing more). The plugin could use that. Then you ship the batch/script file, WAR and config file to your customers, have them edit the config file, run the batch/script file, then deploy. That would be a bit less onerous than the deploy/stop/edit/redeploy you describe. Probably not something the customer would complain about too much (I understand the desire to not have to anything like that of course).
-- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com On Wed, January 26, 2005 10:27 am, Martin Wegner said: > Niall, > > That would. Except it would require our customer to copy the WAR file to > the webapps directory, start Tomcat, wait a bit, stop Tomcat, find the > struts-config.xml file, edit it, save it and then start Tomcat again. Or > I could put the URL is an external config file, outside of the WAR file, > that if it exists is used by the web app. > > Both are viable options. If the web app can figure out the URL on its own > then it would be foolproof. > > Thanks. > > > --Marty > > --- Niall Pemberton <[EMAIL PROTECTED]> wrote: > >> Wouldn't the simplest thing be to just add a "url" property to the >> PlugIn >> that initializes your SOAP service? >> >> <plug-in className="..."> >> <set-property property="url" >> value="http://blahblahblah.com:8080/AppName/"/> >> </plug-in> >> >> Niall >> >> ----- Original Message ----- >> From: "Martin Wegner" <[EMAIL PROTECTED]> >> To: "Struts Users Mailing List" <user@struts.apache.org> >> Sent: Wednesday, January 26, 2005 3:12 PM >> Subject: RE: PlugIn and the base URL >> >> >> > 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] >> >> > > > --------------------------------------------------------------------- > 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]