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]

Reply via email to