Hmm... that looks like a bug of some sort in the wsdl query code.   Most 
likely due to the shared wsdl cache.   Probably need a bug logged for 
that.  Most likely, if you remove the wsdlLocation and have it generate 
one at runtime, it would be OK as the wsdl cache wouldn't be involved.

Invokations on the individual endpoint URL's should definitely be going 
to the proper implementation.   It's just a wsdl updating issue.

One wrather heavyweight workaround would be to force creation of a new 
Bus between publish points so it would get a new wsdl cache:

Endpoint.publish(address1, thing1);
BusFactory.setDefaultBus(null);
Endpoint.publish(address2, thing2);

Dan


On Wednesday 09 April 2008, Arul Dhesiaseelan wrote:
> Thanks Dan.
>
> But when I implement as shown below.
>
>         MyThing implementor = new MyThingImpl();
>         String address = "http://localhost:8080/MyThingInstance";
>         javax.xml.ws.Endpoint jaxwsEndpoint =
> Endpoint.publish(address, implementor);
>
>         MyThing implementor2 = new MyThingImpl();
>         String address2 = "http://localhost:8080/MyThingInstance2";
>         javax.xml.ws.Endpoint jaxwsEndpoint =
> Endpoint.publish(address2, implementor2);
>
> I tried to access http://localhost:8080/MyThingInstance?wsdl and
> http://localhost:8080/MyThingInstance2?wsdl. Both the WSDL has the
> same service definition.
>
> I do not see MyThingInstance2 anywhere in the WSDL.
>
> Am I missing something?
>
> Best regards
> Arul
>
> Daniel Kulp wrote:
> > On Wednesday 09 April 2008, Arul Dhesiaseelan wrote:
> >> Daniel Kulp wrote:
> >>> On Wednesday 09 April 2008, Benson Margulies wrote:
> >>>> A bit of googling got me nowhere here.
> >>>>
> >>>> I want to publish a service on both a http: address and a local:
> >>>> address. Two jaxws:endpoints? Can they point to the same
> >>>> #implementation bean?
> >>>
> >>> Yep.   It's the same as if you did:
> >>>
> >>> MyThing thing = new MyThingImpl();
> >>> Endpoint.publish(address1, thing);
> >>> Endpoint.publish(address2, thing);
> >>
> >> Dan,
> >>
> >> Does this work?
> >>
> >> MyThing thing1 = new MyThingImpl();
> >> MyThing thing2 = new MyThingImpl();
> >>
> >> Endpoint.publish(address1, thing1);
> >> Endpoint.publish(address2, thing2);
> >>
> >> When I invoke the service at address1, it should invoke thing1 and
> >> address2 should invoke thing2.
> >>
> >> Thanks!
> >> Arul
> >
> > Yep.   That's exactly how it's supposed to work.



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to