So my service names should start with a unique name like... 1Address, 2Address, 3Address.

Is this a limitation of this implementation?

Thanks!
Arul

Willem Jiang wrote:
That is because CXF support to map a Http request to a soap request, such as "http://localhost:9000/SoapContext/SoapPort/greetMe/requestType/cxf";. To implement this by default , CXF use the match the first policy(call the String.startWith()) to lookup the proper destination.

With these policy "http://localhost:8080/MyThingInstance?wsdl"; and "http://localhost:8080/MyThingInstance2?wsdl"; requests will be dispatched destination which address is MyThingInstance. So you always get the same WSDL with these two URL.

If you want to get the different wsdl definitions from Address1 and Address2 , you need to avoid the Address2 starting with Address1.

Willem

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.





_________________________________________________
Scanned by MessageLabs for the Super Flux Friends
_________________________________________________

Reply via email to