cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Ma <...@iona.com>
Subject Re: WS Addressing - the API approach
Date Thu, 08 Nov 2007 07:33:50 GMT
Hi ,
 
I digged further into this issue . WsaFeature is not working when 
explicitly set UsingAddressingAdvisory to true
caused by there is another WsaFeature configured for bus  :
    <cxf:bus>
        <cxf:features>
            <wsa:addressing/>
        </cxf:features>
    </cxf:bus>

Runtime always uses the MAPAggregator interceptor(which 
UsingAddressingAdvisory value is false)  provided by bus to process
message  instead of  MAPAggregator contains true value  from WsaFeature 
configured for  JaxWsProxyFactoryBean.

Our feature seems does not support override. It needs fix or enhancement.

Regards

Jim


 

James Mao wrote:
> OK, I'll take that into account.
>
> Thanks,
> James
>
>> There might be another issue in the MAPAggregator as well.   The 
>> messageIds field has two issues:
>>
>> 1) It's not thread safe.  Probably change to ConcurrentHashMap or use 
>> a synchronized map.
>>
>> 2) There is a put, but I don't see any removes anywhere.   That 
>> concerns me.
>>
>> Dan
>>
>>
>> On Wednesday 07 November 2007, James Mao wrote:
>>  
>>> Thanks Jim,
>>>
>>> There's couple ways to enable the ws-a, and it's in
>>> MAPAggregator.usingAddressing, i guess you probably saw the code
>>> already.
>>>
>>> James
>>>
>>>    
>>>> Hi ,
>>>>
>>>> It seems do not work even I  explicitly set UsingAddressingAdvisory
>>>> to true.  This is an issue in the WSAddressingFeature.
>>>>
>>>> The only way I can get it working is add wsdl url , service name and
>>>> endpoint name to JaxWsProxyFactoryBean :
>>>>
>>>>        factory.setServiceName(SERVICE_NAME);
>>>>        factory.setEndpointName(PORT_NAME);
>>>>        factory.setWsdlURL(wsdl.toURL().toString());
>>>>
>>>> And MAPAggregator can get the UsingAdressing information through
>>>> wsdl .
>>>>
>>>> Regards
>>>>
>>>> Jim
>>>>
>>>>      
>>>>> James,
>>>>>
>>>>> This is one of the things of the ws-addressing feature that I
>>>>> personally think is totally broken.
>>>>> If you do:
>>>>>
>>>>> WSAddressingFeature feature = new WSAddressingFeature();
>>>>> feature.setUsingAddressingAdvisory(true);
>>>>> factory.getFeatures().add(feature);
>>>>>
>>>>> it probably will work.   IMO, the "true" flag should be the DEFAULT
>>>>> when using the WSAddressingFeature.
>>>>>
>>>>> Dan
>>>>>
>>>>> On Wednesday 07 November 2007, James Mao wrote:
>>>>>        
>>>>>> Hi,
>>>>>>
>>>>>> I'm trying to enable the ws-a through the API approach which
>>>>>> described in the doc [1], but the message i captured told me that
>>>>>> the ws-a is definitely not working.
>>>>>>
>>>>>> Client side code:
>>>>>>
>>>>>>         JaxWsProxyFactoryBean factory = new
>>>>>> JaxWsProxyFactoryBean(); factory.setServiceClass(Greeter.class);
>>>>>>
>>>>>> factory.setAddress("http://localhost:8080/SoapContext/SoapPort");
>>>>>> factory.getFeatures().add(new WSAddressingFeature()); Greeter port
>>>>>> = (Greeter) factory.create();
>>>>>>
>>>>>> Service side code:
>>>>>>
>>>>>>         EndpointImpl ep = (EndpointImpl)
>>>>>> Endpoint.create(implementor); ep.getFeatures().add(new
>>>>>> WSAddressingFeature());
>>>>>>         ep.publish(address);
>>>>>>
>>>>>> Am I miss anything?
>>>>>>
>>>>>> Or
>>>>>>
>>>>>> We have to use the Spring config to enable to ws-a?
>>>>>>
>>>>>>
>>>>>> Thanks in advance!
>>>>>> James
>>>>>>
>>>>>>
>>>>>>
>>>>>> [1]http://cwiki.apache.org/CXF20DOC/ws-addressing.html
>>>>>>           
>>
>>
>>
>>   
>

Mime
View raw message