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