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: <axis-user@ws.apache.org> 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: <axis-user@ws.apache.org> > > 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