cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Arul Dhesiaseelan <a...@fluxcorp.com>
Subject Re: Multiple addresses for a service
Date Wed, 16 Apr 2008 14:53:46 GMT
Thanks Williem.


Willem Jiang wrote:
> Good suggestion, I will try to address this issue by checking the 
> request url with the path separator.
> Here is the JIRA[1] for tracing it.
>
> [1]https://issues.apache.org/jira/browse/CXF-1531
>
> Willem
> Guillaume Nodet wrote:
>> I guess we could preserve the existing behavior while still use the 
>> correct
>> bean.  We just need to take into account the path separator "/" and only
>> select the one that has a full match.
>>
>> On Mon, Apr 14, 2008 at 4:15 AM, Willem Jiang <willem.jiang@gmail.com>
>> 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
> _________________________________________________


Mime
View raw message