I don't wish to change the implementation, but merely set a property on the
Port instance associated with a Service. For example, something like this:

port.addExtensibilityElement(new
SOAPAddressImpl("http://localhost:9090/hello";));

So when the client makes the call, the ws is instantiated and has a new
endpoint set on it, by this bit of code in Service.java:

 if (proxyInterface.isAssignableFrom(stubClass)) {
        Class[] formalArgs ={javax.xml.rpc.Service.class};
        Object[] actualArgs = {this};
        Constructor ctor = stubClass.getConstructor(formalArgs);
        Stub stub = (Stub) ctor.newInstance(actualArgs);
        stub._setProperty(
                        Stub.ENDPOINT_ADDRESS_PROPERTY,
                        WSDLUtils.getAddressFromPort(port));
        stub.setPortName(portName);
        return (Remote) stub;
                                                        
Look at the way WSDLUtils.getAddressFromPort works...


On Sat, Jun 25, 2005 at 06:23:38AM -0400, Jeff wrote:
> That's somewhat different from what I understood you to be asking before. I
> thought you were talking about a client using a programmatically specified
> endpoint thereby selecting a web service on a particular server.
> 
> Now you are talking about connecting to an Axis web application and Axis
> then selecting a given web service implementation. This is something that's
> hard-coded in the deployment descriptor, of course. The service element
> contains the wsdlServicePort parameter and its corresponding className
> parameter.
> 
> If you want to switch service implementations, I suggest that you add a
> 'service type' parameter to each web service method and switch inside the
> methods, possibly even using Class.forName() etc. to load a class that
> implements a desired interface.
> 
> 
> Jeff
> 
> 
> ----- Original Message ----- 
> From: "John Baker" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Saturday, June 25, 2005 6:00 PM
> Subject: Re: Dynamic Endpoints
> 
> 
> > Well perhaps we should think about this at a different angle.
> >
> > The client makes a call to an Axis server. How does the Axis server figure
> > out which class to instantiate? When it receives a call to the service
> > "MyService", how does it look up that service (the Service object)?
> >
> > That's what I'm asking, and I'm convinced someone on this list should know
> > :-)
> >
> > On Sat, Jun 25, 2005 at 02:27:14AM -0400, Jeff wrote:
> > > The expression "getting an instance of a Service given a name" is pretty
> > > much impenetrable to me! We can access remote services and we can
> control
> > > things like service sessions and such but in general, I would have
> thought
> > > that the only things we are likely to be "getting an instance of" would
> be
> > > client side classes!
> > >
> > >
> > >
> > >
> > > ----- Original Message ----- 
> > > From: "John Baker" <[EMAIL PROTECTED]>
> > > To: <[email protected]>
> > > Sent: Saturday, June 25, 2005 2:17 PM
> > > Subject: Re: Dynamic Endpoints
> > >
> > >
> > > > Well I was rather hoping someone else may respond too :) Surely,
> getting
> > > an
> > > > instance of a Service given a name can't be too hard...
> > > >
> > > > On Sat, Jun 25, 2005 at 02:15:02AM -0400, Jeff wrote:
> > > > > I'm now just too confused!
> > > > >
> > > > > I suggest you start another thread and perhaps that will prompt
> someone
> > > else
> > > > > to help. Sorry.
> > > > >
> > > > >
> > > > > Jeff
> > > > >
> > > > > ----- Original Message ----- 
> > > > > From: "John Baker" <[EMAIL PROTECTED]>
> > > > > To: <[email protected]>
> > > > > Sent: Saturday, June 25, 2005 1:56 PM
> > > > > Subject: Re: Dynamic Endpoints
> > > > >
> > > > >
> > > > > > Well if it references an interface, what class would the service
> > > > > instantiate
> > > > > > when the call was made?
> > > > > >
> > > > > > It works a treat, by the way :) I just need the Axis code to walk
> the
> > > > > > services and add the soap:location directive programatically!
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Sat, Jun 25, 2005 at 01:52:35AM -0400, Jeff wrote:
> > > > > > > Hi John,
> > > > > > >
> > > > > > > My understanding is that the service element in Axis deployment
> > > > > descriptors
> > > > > > > identifies a skeleton class, amongst other things, so your stub
> > > class
> > > > > looks
> > > > > > > out of place to me!
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > ----- Original Message ----- 
> > > > > > > From: "John Baker" <[EMAIL PROTECTED]>
> > > > > > > To: <[email protected]>
> > > > > > > Sent: Saturday, June 25, 2005 1:27 PM
> > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > >
> > > > > > >
> > > > > > > > The stub itself is being deployed. The deploy.wsdd file will
> have:
> > > > > > > >
> > > > > > > >   <service name="Something" provider="java:RPC" style="rpc"
> > > > > use="encoded">
> > > > > > > >         <parameter name="wsdlTargetNamespace"
> > > value="jss:Something"/>
> > > > > > > >         <parameter name="wsdlServiceElement"
> > > > > value="SomethingService"/>
> > > > > > > >         <parameter name="wsdlServicePort" value="Something"/>
> > > > > > > >         <parameter name="className"
> > > > > > > >             value="com.blah.SomethingSoapBindingStub"/>
> > > > > > > >
> > > > > > > > Note the last line. I don't want to write a wrapper class
> around
> > > the
> > > > > Stub,
> > > > > > > I
> > > > > > > > want to deploy it directly, and set the endpoint in another
> part
> > > of
> > > > > the
> > > > > > > web
> > > > > > > > app..
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Sat, Jun 25, 2005 at 01:17:56AM -0400, Jeff wrote:
> > > > > > > > > Although "the same stub may be deployed multiple times",
> each is
> > > a
> > > > > > > separate
> > > > > > > > > instance and each will be instantiated as part of some
> client
> > > code
> > > > > > > (running
> > > > > > > > > on server X but web service client code nonetheless).
> > > Presumably,
> > > > > the
> > > > > > > code
> > > > > > > > > doing the stub instantiation knows which endpoint to use and
> can
> > > > > simply
> > > > > > > set
> > > > > > > > > it with something like:
> > > > > > > > >
> > > > > > > > >
> locator.setMyServiceSoapEndpointAddress(strEndpointAddress);
> > > > > > > > >
> > > > > > > > > I'm obviously missing something here but your scenario, as
> > > described
> > > > > > > thus
> > > > > > > > > far, suggests this as an obvious approach.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Jeff
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ----- Original Message ----- 
> > > > > > > > > From: "John Baker" <[EMAIL PROTECTED]>
> > > > > > > > > To: <[email protected]>
> > > > > > > > > Sent: Saturday, June 25, 2005 7:21 AM
> > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Nope! I want the web application running on X to set it.
> I've
> > > > > wrapped
> > > > > > > Axis
> > > > > > > > > > in my own web application, and hence there will be various
> > > > > > > servlets/etc. I
> > > > > > > > > > want Mr. User to be able to go to a servlet and set the
> end
> > > points
> > > > > for
> > > > > > > a
> > > > > > > > > > bunch of services, hence it can only be done
> dynamically...
> > > and as
> > > > > the
> > > > > > > > > same
> > > > > > > > > > stub may be deployed multiple times, it can't be done via
> a
> > > static
> > > > > > > method.
> > > > > > > > > >
> > > > > > > > > > Thoughts?
> > > > > > > > > >
> > > > > > > > > > On Thu, Jun 23, 2005 at 11:19:07PM -0400, Jeff wrote:
> > > > > > > > > > > Well, not entirely, John!
> > > > > > > > > > >
> > > > > > > > > > > Do you want the client to set the endpoint of the target
> > > machine
> > > > > by
> > > > > > > > > calling
> > > > > > > > > > > an endpoint-setting method on X?
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > Jeff
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > From: "John Baker" <[EMAIL PROTECTED]>
> > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > Sent: Friday, June 24, 2005 6:21 AM
> > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > > I think the answer to my question is:
> > > > > > > > > > > >
> > > > > > > > > > > > <soap:service location="http://blah.com"; />
> > > > > > > > > > > >
> > > > > > > > > > > > So I can define this in the wsdd, but I wish to set it
> at
> > > > > runtime.
> > > > > > > I
> > > > > > > > > am
> > > > > > > > > > > > doing the following:
> > > > > > > > > > > >
> > > > > > > > > > > > - Using wsdl2java to create Java stubs, with a
> > > deploy.wsdd,
> > > > > > > > > > > > - Altering the deploy.wsdd to deploy the Stub,
> > > > > > > > > > > > - Deploying to Axis server (we'll call this X),
> > > > > > > > > > > > - Calling X and hoping it will then make another WS
> call..
> > > > > > > > > > > >
> > > > > > > > > > > > I.e..
> > > > > > > > > > > >
> > > > > > > > > > > > My client <--> X <--> Target machine.
> > > > > > > > > > > >
> > > > > > > > > > > > This is fine if I want to set the location declaration
> in
> > > the
> > > > > > > > > deploy.wsdd,
> > > > > > > > > > > > but what I would like to do is set it at runtime. So
> the
> > > web
> > > > > > > > > application
> > > > > > > > > > > on
> > > > > > > > > > > > X will start, walk a set of services and set a
> location
> > > (not
> > > > > > > > > statically).
> > > > > > > > > > > >
> > > > > > > > > > > > Does this clarify things?
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > John
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > On Fri, Jun 24, 2005 at 10:43:28AM +0100, John Baker
> > > wrote:
> > > > > > > > > > > > > Ok.
> > > > > > > > > > > > >
> > > > > > > > > > > > > Can I start by asking, given this:
> > > > > > > > > > > > >
> > > > > > > > > > > > > <deployment name="test"
> > > > > xmlns="http://xml.apache.org/axis/wsdd/";
> > > > > > > > > > > > >
> > > > > xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
> > > > > > > > > > > > >       <service name="Example" provider="java:RPC">
> > > > > > > > > > > > >         <parameter name="className"
> > > > > value="com.blah.Example"/>
> > > > > > > > > > > > >         <parameter name="allowedMethods"
> value="login
> > > logout
> > > > > > > > > getDate"/>
> > > > > > > > > > > > >         <parameter name="wsdlServicePort"
> > > value="Example"/>
> > > > > > > > > > > > >      </service>
> > > > > > > > > > > > > </deployment>
> > > > > > > > > > > > >
> > > > > > > > > > > > > Can you tell me how to add the XML declaration to
> set
> > > the
> > > > > > > endpoint?
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > John
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > On Thu, Jun 23, 2005 at 05:02:06PM -0400, Jeff
> wrote:
> > > > > > > > > > > > > > Sorry, John, my little brain need more input!
> Please
> > > given
> > > > > a
> > > > > > > > > > > comprehensive
> > > > > > > > > > > > > > explanation of exactly how you want you software
> to
> > > > > behave.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > > > > From: "John Baker" <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > > > > Sent: Friday, June 24, 2005 4:58 AM
> > > > > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > > I am specifically talking about setting wsdd
> > > > > > > > > > > parameters/service-locators
> > > > > > > > > > > > > > > programatically. I.e I have a wsdd which defines
> a
> > > > > service,
> > > > > > > and
> > > > > > > > > I
> > > > > > > > > > > want to
> > > > > > > > > > > > > > > alter the service-locator through some other
> random
> > > part
> > > > > of
> > > > > > > a
> > > > > > > > > web
> > > > > > > > > > > app :)
> > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > On Thu, Jun 23, 2005 at 04:43:35PM -0400, Jeff
> > > wrote:
> > > > > > > > > > > > > > > > It depends on how dynamic you want things to
> be.
> > > If
> > > > > you
> > > > > > > are
> > > > > > > > > > > talking
> > > > > > > > > > > > > > about
> > > > > > > > > > > > > > > > server-side wsdd then you could just as well
> > > declare
> > > > > > > > > parameters in
> > > > > > > > > > > > > > web.xml
> > > > > > > > > > > > > > > > and retrieve values using the standard servlet
> > > API.
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > > > > > > From: "John Baker"
> <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > > > > > > Sent: Friday, June 24, 2005 4:38 AM
> > > > > > > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > Well you can specify a soap:locator in the
> wsdd
> > > > > file.
> > > > > > > That's
> > > > > > > > > > > loaded
> > > > > > > > > > > > > > into
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > internal Port instances. But how does one
> look
> > > them
> > > > > up
> > > > > > > > > > > > > > programatically?
> > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > On Thu, Jun 23, 2005 at 04:25:25PM -0400,
> Jeff
> > > > > wrote:
> > > > > > > > > > > > > > > > > > Not too sure about 'stuff' either  :-)
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Each service has an endpoint which is,
> > > presumably,
> > > > > > > better
> > > > > > > > > than
> > > > > > > > > > > a
> > > > > > > > > > > > > > name.
> > > > > > > > > > > > > > > > Where
> > > > > > > > > > > > > > > > > > do you anticipate getting the
> names/endpoints
> > > > > from?
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > I just re-read your original posting,
> John.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Suppose there are three computers, A, B
> and C.
> > > > > Suppose
> > > > > > > too
> > > > > > > > > > > that A
> > > > > > > > > > > > > > runs
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > simple client that calls into the service
> on B
> > > and
> > > > > > > that
> > > > > > > > > the
> > > > > > > > > > > service
> > > > > > > > > > > > > > on B
> > > > > > > > > > > > > > > > > > uses client-side code (stub) to call into
> the
> > > > > service
> > > > > > > on
> > > > > > > > > C.
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > Are you expecting client A to call service
> B
> > > with
> > > > > > > > > > > setLocationURI()
> > > > > > > > > > > > > > to
> > > > > > > > > > > > > > > > set
> > > > > > > > > > > > > > > > > > the endpoint and then subsequently client
> A
> > > calls
> > > > > into
> > > > > > > > > service
> > > > > > > > > > > B
> > > > > > > > > > > > > > which
> > > > > > > > > > > > > > > > > > results in service B using the pre-set
> > > endpoint to
> > > > > > > call
> > > > > > > > > into
> > > > > > > > > > > service
> > > > > > > > > > > > > > C?
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > > > > > > > > From: "John Baker"
> > > <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > > > > > > > > Sent: Friday, June 24, 2005 4:20 AM
> > > > > > > > > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > Well I assume each Service has a name,
> so
> > > > > looking it
> > > > > > > up
> > > > > > > > > by
> > > > > > > > > > > name
> > > > > > > > > > > > > > would
> > > > > > > > > > > > > > > > be
> > > > > > > > > > > > > > > > > > > nice. I assume that the deploy.wsdd is
> > > parsed
> > > > > and
> > > > > > > > > 'stuff' is
> > > > > > > > > > > > > > created
> > > > > > > > > > > > > > > > > > > internally...
> > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > On Thu, Jun 23, 2005 at
> 04:12:54PM -0400,
> > > Jeff
> > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > Dunno about clean. Dunno about looking
> up
> > > > > > > instances of
> > > > > > > > > a
> > > > > > > > > > > > > > service.
> > > > > > > > > > > > > > > > What
> > > > > > > > > > > > > > > > > > > > criteria are you using for choosing
> > > between
> > > > > the
> > > > > > > > > different
> > > > > > > > > > > > > > service
> > > > > > > > > > > > > > > > > > instances?
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > > > > > > > > > > From: "John Baker"
> > > > > <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > > > > > > > > > > Sent: Friday, June 24, 2005 4:09 AM
> > > > > > > > > > > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > Yep. I appreciate I could use a
> static
> > > > > method,
> > > > > > > but
> > > > > > > > > this
> > > > > > > > > > > > > > doesn't
> > > > > > > > > > > > > > > > seem
> > > > > > > > > > > > > > > > > > very
> > > > > > > > > > > > > > > > > > > > > 'clean'... And I'm quite intrigued
> to
> > > how
> > > > > one
> > > > > > > looks
> > > > > > > > > up
> > > > > > > > > > > > > > instances
> > > > > > > > > > > > > > > > of a
> > > > > > > > > > > > > > > > > > > > > service (or rather, the factory that
> > > creates
> > > > > > > them)
> > > > > > > > > > > through
> > > > > > > > > > > > > > Axis..
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > John
> > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > On Thu, Jun 23, 2005 at
> > > 04:09:20PM -0400,
> > > > > Jeff
> > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > Do you mean two or three different
> > > > > instances
> > > > > > > of
> > > > > > > > > the
> > > > > > > > > > > same
> > > > > > > > > > > > > > > > service?
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > > > > > > > > > > > > From: "John Baker"
> > > > > > > <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > > > > > > > > > > > > Sent: Friday, June 24, 2005 4:06
> AM
> > > > > > > > > > > > > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > That's one way. But I may wish
> to
> > > deploy
> > > > > the
> > > > > > > > > same
> > > > > > > > > > > class on
> > > > > > > > > > > > > > two
> > > > > > > > > > > > > > > > or
> > > > > > > > > > > > > > > > > > > > three
> > > > > > > > > > > > > > > > > > > > > > > different services and set some
> > > > > parameters
> > > > > > > > > > > differently,
> > > > > > > > > > > > > > hence
> > > > > > > > > > > > > > > > I'm
> > > > > > > > > > > > > > > > > > > > > > wondering
> > > > > > > > > > > > > > > > > > > > > > > how to look it up by
> service/port
> > > ..?
> > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > On Thu, Jun 23, 2005 at
> > > > > 04:02:59PM -0400,
> > > > > > > Jeff
> > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > > I cannot see the problem! Just
> > > create
> > > > > a
> > > > > > > static
> > > > > > > > > > > method
> > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > your
> > > > > > > > > > > > > > > > > > stub
> > > > > > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > use
> > > > > > > > > > > > > > > > > > > > > > > > it to initialize the endpoint.
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > Jeff
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > ----- Original Message ----- 
> > > > > > > > > > > > > > > > > > > > > > > > From: "John Baker"
> > > > > > > > > <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > > > > > > > > > > > To: <[email protected]>
> > > > > > > > > > > > > > > > > > > > > > > > Sent: Friday, June 24, 2005
> 3:19
> > > AM
> > > > > > > > > > > > > > > > > > > > > > > > Subject: Re: Dynamic Endpoints
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > Quite, but this isn't
> precisely
> > > what
> > > > > I
> > > > > > > > > meant.
> > > > > > > > > > > I'm
> > > > > > > > > > > > > > > > generating a
> > > > > > > > > > > > > > > > > > > > > > deploy.wsdd
> > > > > > > > > > > > > > > > > > > > > > > > > file and deploying the Stub
> > > itself.
> > > > > So
> > > > > > > when
> > > > > > > > > Axis
> > > > > > > > > > > > > > creates
> > > > > > > > > > > > > > > > > > instances
> > > > > > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > > > > > Stub, the cachedEndpoint
> > > variable
> > > > > > > (inherited
> > > > > > > > > > > from
> > > > > > > > > > > > > > > > Stub.java)
> > > > > > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > > > null.
> > > > > > > > > > > > > > > > > > > > > > I'd
> > > > > > > > > > > > > > > > > > > > > > > > > like to set this
> programatically
> > > > > from
> > > > > > > > > another
> > > > > > > > > > > part of
> > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > web
> > > > > > > > > > > > > > > > > > > > > > application
> > > > > > > > > > > > > > > > > > > > > > > > > (Axis is integrated into my
> own
> > > > > webapp).
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > John
> > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Jun 23, 2005 at
> > > > > > > 05:32:05AM -0400,
> > > > > > > > > Jeff
> > > > > > > > > > > wrote:
> > > > > > > > > > > > > > > > > > > > > > > > > > For a service called
> > > MyService,
> > > > > i.e.
> > > > > > > your
> > > > > > > > > WSDL
> > > > > > > > > > > file
> > > > > > > > > > > > > > > > contains
> > > > > > > > > > > > > > > > > > > > > > > > <wsdl:service
> > > > > > > > > > > > > > > > > > > > > > > > > > name="MyService">, source
> code
> > > > > > > generated
> > > > > > > > > by
> > > > > > > > > > > > > > WSDL2Java
> > > > > > > > > > > > > > > > will
> > > > > > > > > > > > > > > > > > > > contain
> > > > > > > > > > > > > > > > > > > > > > > > classes
> > > > > > > > > > > > > > > > > > > > > > > > > > with these (or similar)
> names
> > > > > (amongst
> > > > > > > > > > > others):
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > >     MyServiceLocator
> > > > > > > > > > > > > > > > > > > > > > > > > >     MyServiceSoap
> > > > > > > > > > > > > > > > > > > > > > > > > >     MyServiceSoapStub
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > You can then invoke
> myMethod()
> > > > > against
> > > > > > > the
> > > > > > > > > > > service
> > > > > > > > > > > > > > using
> > > > > > > > > > > > > > > > > > code
> > > > > > > > > > > > > > > > > > > > like:
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > >     String
> strEndpointAddress
> > > =
> > > > > ...
> > > > > > > > > > > > > > > > > > > > > > > > > >     MyServiceLocator
> locator =
> > > new
> > > > > > > > > > > > > > MyServiceLocator();
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > >
> > > > > > > > > locator.setMyServiceSoapEndpointAddress(strEndpointAddress);
> > > > > > > > > > > > > > > > > > > > > > > > > >     MyServiceSoapStub stub
> =
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > (MyServiceSoapStub)locator.getPort(MyServiceSoap.class);
> > > > > > > > > > > > > > > > > > > > > > > > > >     stub.myMethod();
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > Jeff
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > ----- Original
> Message ----- 
> > > > > > > > > > > > > > > > > > > > > > > > > > From: "John Baker"
> > > > > > > > > > > <[EMAIL PROTECTED]>
> > > > > > > > > > > > > > > > > > > > > > > > > > To:
> <[email protected]>
> > > > > > > > > > > > > > > > > > > > > > > > > > Sent: Thursday, June 23,
> 2005
> > > 7:57
> > > > > AM
> > > > > > > > > > > > > > > > > > > > > > > > > > Subject: Dynamic Endpoints
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > Hi,
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > I'm trying to simplify
> the
> > > > > > > configuration
> > > > > > > > > of
> > > > > > > > > > > a
> > > > > > > > > > > > > > > > pre-packaged
> > > > > > > > > > > > > > > > > > > > Axis
> > > > > > > > > > > > > > > > > > > > > > server
> > > > > > > > > > > > > > > > > > > > > > > > > > which
> > > > > > > > > > > > > > > > > > > > > > > > > > > already has a bunch of
> > > services
> > > > > > > > > deployed.
> > > > > > > > > > > I'd like
> > > > > > > > > > > > > > > > users
> > > > > > > > > > > > > > > > > > to be
> > > > > > > > > > > > > > > > > > > > > > easily
> > > > > > > > > > > > > > > > > > > > > > > > be
> > > > > > > > > > > > > > > > > > > > > > > > > > > able to set the endpoint
> on
> > > > > services
> > > > > > > > > that
> > > > > > > > > > > were
> > > > > > > > > > > > > > > > generated
> > > > > > > > > > > > > > > > > > from
> > > > > > > > > > > > > > > > > > > > > > wsdl, so
> > > > > > > > > > > > > > > > > > > > > > > > I'm
> > > > > > > > > > > > > > > > > > > > > > > > > > > using the Java stub as
> my
> > > > > deployed
> > > > > > > > > service.
> > > > > > > > > > > You
> > > > > > > > > > > > > > can
> > > > > > > > > > > > > > > > think
> > > > > > > > > > > > > > > > > > of
> > > > > > > > > > > > > > > > > > > > this
> > > > > > > > > > > > > > > > > > > > > > > > model as
> > > > > > > > > > > > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > > > > > > > > > > > > proxy, in a rather
> simple
> > > sense;
> > > > > it
> > > > > > > does
> > > > > > > > > > > nothing
> > > > > > > > > > > > > > more
> > > > > > > > > > > > > > > > than
> > > > > > > > > > > > > > > > > > > > call
> > > > > > > > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > > > > same
> > > > > > > > > > > > > > > > > > > > > > > > > > > service on another
> server.
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > I appreciate that it's
> > > possible
> > > > > to
> > > > > > > set
> > > > > > > > > an
> > > > > > > > > > > endpoint
> > > > > > > > > > > > > > for
> > > > > > > > > > > > > > > > a
> > > > > > > > > > > > > > > > > > > > service
> > > > > > > > > > > > > > > > > > > > > > > > through a
> > > > > > > > > > > > > > > > > > > > > > > > > > > deploy.wsdd file.
> However I
> > > > > would
> > > > > > > like
> > > > > > > > > to do
> > > > > > > > > > > this
> > > > > > > > > > > > > > > > > > dynamically
> > > > > > > > > > > > > > > > > > > > and
> > > > > > > > > > > > > > > > > > > > > > am
> > > > > > > > > > > > > > > > > > > > > > > > > > > wondering how I would do
> > > this? I
> > > > > > > think I
> > > > > > > > > > > need to
> > > > > > > > > > > > > > set
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > parameter
> > > > > > > > > > > > > > > > > > > > > > > > > > > dynamically so everytime
> an
> > > > > instance
> > > > > > > of
> > > > > > > > > a
> > > > > > > > > > > service
> > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > created,
> > > > > > > > > > > > > > > > > > > > an
> > > > > > > > > > > > > > > > > > > > > > > > endpoint
> > > > > > > > > > > > > > > > > > > > > > > > > > is
> > > > > > > > > > > > > > > > > > > > > > > > > > > set.
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > I've got something like
> > > this:
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > org.apache.axis.client.Service
> > > > > > > service =
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > >
> > > org.apache.axis.client.ServiceFactory.getService("MyService");
> > > > > > > > > > > > > > > > > > > > > > > > > > >   Iterator pi =
> > > > > service.getPorts();
> > > > > > > > > > > > > > > > > > > > > > > > > > >   javax.wsdl.Port port;
> > > > > > > > > > > > > > > > > > > > > > > > > > >   while (pi.hasNext())
> > > > > > > > > > > > > > > > > > > > > > > > > > >   {
> > > > > > > > > > > > > > > > > > > > > > > > > > >     port =
> > > > > > > (javax.wsdl.Port)pi.next();
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > port.addExtensibilityElement(new
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > SOAPAddressImpl("http://localhost:9090/hello";));
> > > > > > > > > > > > > > > > > > > > > > > > > > > }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > But I suspect it would
> have
> > > to
> > > > > be a
> > > > > > > > > little
> > > > > > > > > > > more
> > > > > > > > > > > > > > > > advanced
> > > > > > > > > > > > > > > > > > than
> > > > > > > > > > > > > > > > > > > > my
> > > > > > > > > > > > > > > > > > > > > > > > simple
> > > > > > > > > > > > > > > > > > > > > > > > > > > example :)
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > I'd also need to write
> my
> > > own
> > > > > > > SOAPImpl:
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > protected class
> > > SOAPAddressImpl
> > > > > > > > > implements
> > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > javax.wsdl.extensions.soap.SOAPAddress
> > > > > > > > > > > > > > > > > > > > > > > > > > > {
> > > > > > > > > > > > > > > > > > > > > > > > > > >   private QName
> elementType;
> > > > > > > > > > > > > > > > > > > > > > > > > > >   private Boolean
> required;
> > > > > > > > > > > > > > > > > > > > > > > > > > >   private String uri;
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public
> > > SOAPAddressImpl(String
> > > > > uri)
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { this.uri = uri; }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public void
> > > > > setElementTpe(QName
> > > > > > > > > > > elementType)
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { this.elementType =
> > > > > > > elementType; }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public QName
> > > getElementType()
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { return
> (elementType); }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public void
> > > > > setRequired(Boolean
> > > > > > > > > required)
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { this.required =
> > > required; }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public Boolean
> > > getRequired()
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { return (required); }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public void
> > > > > setLocationURI(String
> > > > > > > uri)
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { this.uri = uri; }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >   public String
> > > getLocationURI()
> > > > > > > > > > > > > > > > > > > > > > > > > > >   { return (uri); }
> > > > > > > > > > > > > > > > > > > > > > > > > > > }
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > But I'm not sure what
> the
> > > > > > > elementType of
> > > > > > > > > > > required
> > > > > > > > > > > > > > flag
> > > > > > > > > > > > > > > > > > would
> > > > > > > > > > > > > > > > > > > > > > require?
> > > > > > > > > > > > > > > > > > > > > > > > > > Having
> > > > > > > > > > > > > > > > > > > > > > > > > > > read the Axis source, I
> > > don't
> > > > > think
> > > > > > > they
> > > > > > > > > are
> > > > > > > > > > > used
> > > > > > > > > > > > > > by
> > > > > > > > > > > > > > > > the
> > > > > > > > > > > > > > > > > > > > > > > > client.Service
> > > > > > > > > > > > > > > > > > > > > > > > > > class anyway.
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > Any thoughts/pointers?
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > Thanks,
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > >
> > > > > > > > > > > > > > > > > > > > > > > > > > > John Baker

Reply via email to