Hi,
I integrated the change in 2.6.4-SNAPSHOT today.

There is a new test case that looks similar to your case:
http://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes/api/src/test/java/org/apache/cxf/staxutils/transform/OutTransformWriterTest.java's
testRemoveOneNamespace.

Could you try it out?
thanks.
regards, aki


2012/10/16 cantalou89 <[email protected]>:
> I had tried with version 2.6.3 , but the issue can not be slove .
> It may be an issue .
> Thanks all.
>
>
>
> cantalou89
>
> From: Aki Yoshida
> Date: 2012-10-16 01:28
> To: users
> Subject: Re: StaxTransformFeature outTransformElements problem
> hi,
> There seems to be an issue with the namespace replacing feature if the
> namespace replacing must occur at only some specific elements.
>
> I created CXF-4566 to resolve this issue and will submit the fix shortly.
>
> regards, aki
>
> 2012/10/15 Daniel Kulp <[email protected]>:
>>
>> On Oct 15, 2012, at 7:42 AM, Aki Yoshida <[email protected]> wrote:
>>
>>> I don't know why the ns2 prefix binding for those elements is removed.
>>> I'll look into it this afternoon.
>>
>> Can you try with 2.6.3?  We did fix a couple of things related to dropped 
>> namespaces for 2.6.3:
>>
>>
>> commit 6993f39bccea4ed126debf88c8fdd842d00b4750
>> Author: Daniel Kulp <[email protected]>
>> Date:   Fri Sep 28 15:48:52 2012 +0000
>>
>>     Per javadoc, empty prefix needs to delgate to writeDefaultNamespace
>>
>>     git-svn-id: https://svn.apache.org/repos/asf/cxf/trunk@1391510 
>> 13f79535-47bb-0310-9956-ffa450edef68
>>
>> commit 65aed4a841de14f1a7caec6fd1f0ebc28b79245b
>> Author: Akitoshi Yoshida <[email protected]>
>> Date:   Thu Sep 13 15:17:46 2012 +0000
>>
>>     [CXF-4503] TransformOutInterceptor may lose namespace declarations in 
>> some elements
>>
>>     git-svn-id: https://svn.apache.org/repos/asf/cxf/trunk@1384365 
>> 13f79535-47bb-0310-9956-ffa450edef68
>>
>>
>>
>> Dan
>>
>>
>>
>>>
>>> 2012/10/15 Sergey Beryozkin <[email protected]>:
>>>> Hi
>>>>
>>>> On 14/10/12 16:57, cantalou89 wrote:
>>>>>
>>>>> Hi all,
>>>>> I encounter a problem when I used cxf 2.6.2 .
>>>>> I used StaxTransformFeature with configuration '<entry
>>>>> key="{http://www.chinamobile.com/vgop/serviceorder/v1_0}result";
>>>>> value="result" />' to remove result element's namespace befor the soap
>>>>> message responsed to client. Althought the result element's namespace has
>>>>> removed , but the namespace description
>>>>> xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0
>>>>> of<ns2:subscribeServCfmResponse>  also has been removed, it is not what i
>>>>> want . I just want to replce<ns2:result>  of<result>  , so how could i do?
>>>>> Thanks .
>>>>>
>>>>> The spring configuration below:
>>>>> <jaxws:endpoint id="UserOrderServer" address="/UserOrderServer.jws"
>>>>> implementor="com.funo.ehealth.ws.UserOrderServerImpl">
>>>>>
>>>>>   <jaxws:outInterceptors>
>>>>>     <bean name="useForStaxTransformFeature"
>>>>> class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"></bean>
>>>>>   </jaxws:outInterceptors>
>>>>>
>>>>>   <jaxws:features>
>>>>>    <bean class="org.apache.cxf.feature.LoggingFeature" />
>>>>>    <bean id="transformFeature"
>>>>> class="org.apache.cxf.feature.StaxTransformFeature">
>>>>>      <property name="outTransformElements">
>>>>>        <map>
>>>>>         <entry
>>>>> key="{http://www.chinamobile.com/vgop/serviceorder/v1_0}result";
>>>>> value="result" />
>>>>>        </map>
>>>>>      </property>
>>>>>     </bean>
>>>>>   </jaxws:features>
>>>>> </jaxws:endpoint>
>>>>>
>>>>> Before I enable the StaxTransformFeature , the clien received a soap
>>>>> message like below:
>>>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>>>>>  <soap:Header/>
>>>>>   <soap:Body>
>>>>>     <ns2:subscribeServCfmResponse
>>>>> xmlns="http://www.chinamobile.com/vgop/serviceorder/v1_0/common";
>>>>> xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0";>
>>>>>      <ns2:SubscribeServCfmResp>
>>>>>       <ns2:result>0</ns2:result>
>>>>>      </ns2:SubscribeServCfmResp>
>>>>>    </ns2:subscribeServCfmResponse>
>>>>>   </soap:Body>
>>>>> </soap:Envelope>
>>>>>
>>>>> AfterI enable the StaxTransformFeature , the clien received a soap message
>>>>> like below:
>>>>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
>>>>>  <soap:Header/>
>>>>>   <soap:Body>
>>>>>     <ns2:subscribeServCfmResponse
>>>>> xmlns="http://www.chinamobile.com/vgop/serviceorder/v1_0/common";>
>>>>>      <ns2:SubscribeServCfmResp>
>>>>>       <result>0</result>
>>>>>      </ns2:SubscribeServCfmResp>
>>>>>    </ns2:subscribeServCfmResponse>
>>>>>   </soap:Body>
>>>>> </soap:Envelope>
>>>>>
>>>>
>>>> It looks like a bug, at the moment the feature tries to avoid the
>>>> 'left-over' prefixes leaking into the transformed representations (as often
>>>> no traces of the 'old' namespace are expected), but in this case it breaks
>>>> it.
>>>>
>>>> Can you have something like
>>>>
>>>>
>>>> <map>
>>>>      <entry key="{http://www.chinamobile.com/vgop/serviceorder/v1_0}result";
>>>> value="result" />
>>>>      <entry
>>>> key="{http://www.chinamobile.com/vgop/serviceorder/v1_0}subscribeServCfmResponse";
>>>> value="{http://www.chinamobile.com/vgop/serviceorder/v1_0}subscribeServCfmResponse";
>>>> />
>>>> </map>
>>>>
>>>> and check if it helps to retain this specific namespace ? If not then we
>>>> will introduce a property for the namespace declarations be optionally
>>>> retained
>>>>
>>>> Sergey
>>>>
>>>>>
>>>>>
>>>>>
>>>>> cantalou89
>>>>
>>>>
>>>>
>>>> --
>>>> Sergey Beryozkin
>>>>
>>>> Talend Community Coders
>>>> http://coders.talend.com/
>>>>
>>>> Blog: http://sberyozkin.blogspot.com
>>
>> --
>> Daniel Kulp
>> [email protected] - http://dankulp.com/blog
>> Talend Community Coder - http://coders.talend.com
>>

Reply via email to