You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by cantalou89 <ca...@gmail.com> on 2012/10/11 04:10:30 UTC

cxf 2.6.2 how to ignore namespace

dear all:
i want to ignore soap namespace,

i receive a message from axis2 client :
<soapenv:Body>
<ns2:subscribeServCfm 
xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0">
<ns2:subscribeServCfmReq>
<ns1:msgTransactionID xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">555</ns1:msgTransactionID>
<ns1:oprTime xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">20121011094323</ns1:oprTime>
<ns1:cfmResult xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">00</ns1:cfmResult>
</ns2:subscribeServCfmReq>
</ns2:subscribeServCfm>
</soapenv:Body>
then cxf thrwo exception 
 Interceptor for {http://main.ehealth.funo.com/}UserOrderServer#{http://mai
n.ehealth.funo.com/}subscribeServCfm has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://www.chinamo
bile.com/vgop/serviceorder/v1_0}subscribeServCfm found.   Expected {http://main.
ehealth.funo.com/}subscribeServCfm.

when i use cxf client, it works fine ,the message is that :
<ns3:subscribeServCfm 
xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0" 
xmlns:ns3="http://main.ehealth.funo.com/">
<subscribeServCfmReq>
<cfmResult>00</cfmResult>
<msgTransactionID>qq</msgTransactionID>
<oprTime>123</oprTime>
</subscribeServCfmReq>
</ns3:subscribeServCfm>



so i want to ignore the namespace , i have google the answer  , ti try @EndpointProperty(key = "soap.no.validate.parts", value = "true")  but it not work,
how could do to solve the problem?



cantalou89

Re: 回复: Re: cxf 2.6.2 how to ignore namespace

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi, given this Axis-produced payload:

 <soapenv:Body>
 <ns2:subscribeServCfm
 xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0">
 <ns2:subscribeServCfmReq>
 <ns1:msgTransactionID
xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">555</ns1:msgTransactionID>
 <ns1:oprTime
xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">20121011094323</ns1:oprTime>
 <ns1:cfmResult
xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">00</ns1:cfmResult>
 </ns2:subscribeServCfmReq>
 </ns2:subscribeServCfm>
</soapenv:Body>

what do you expect it look like after the transformation ?

Cheers, Sergey


On 11/10/12 03:41, cantalou89 wrote:
> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
> xsi:schemaLocation="
>          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
>          http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
> 
> <jaxws:endpoint id="UserOrderServer" address="/UserOrderServer.jws" implementor="com.funo.ehealth.main.UserOrderServerImpl">
> <jaxws:properties>
> <entry key="soap.no.validate.parts" value="true" />
> </jaxws:properties>
> <jaxws:features>
> <bean id="transformFeature" class="org.apache.cxf.feature.StaxTransformFeature">
> <property name="inTransformElements">
> <map>
> <entry key="{http://www.chinamobile.com/vgop/serviceorder/v1_0}*" value="{http://main.ehealth.funo.com/}*" />
> </map>
> </property>
> </bean>
> <bean class="org.apache.cxf.feature.LoggingFeature" />
> </jaxws:features>
> </jaxws:endpoint>
> 
> </beans>
> this is the beans.xml
> 
> 
> 
> cantalou89
> 
> 发件人: Freeman Fang
> 发送时间: 2012-10-11 10:14
> 收件人: users; cantalou89
> 主题: Re: cxf 2.6.2 how to ignore namespace
> Hi,
> 
> 
> The namespace mismatch between client and server cause this issue, I don't think you can really "ignore" namespace, however, cxf transform feature can help you to overcome this kind of issue, take a look at [1] to get more details
> [1]http://cxf.apache.org/docs/transformationfeature.html
> 
> -------------
> Freeman Fang
> 
> Red Hat, Inc.
> FuseSource is now part of Red Hat
> Web: http://fusesource.com | http://www.redhat.com/
> Twitter: freemanfang
> Blog: http://freemanfang.blogspot.com
> http://blog.sina.com.cn/u/1473905042
> weibo: http://weibo.com/u/1473905042
> 
> 
> On 2012-10-11, at 上午10:10, cantalou89 wrote:
> 
> 
> dear all:
> i want to ignore soap namespace,
> 
> i receive a message from axis2 client :
> <soapenv:Body>
> <ns2:subscribeServCfm
> xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0">
> <ns2:subscribeServCfmReq>
> <ns1:msgTransactionID xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">555</ns1:msgTransactionID>
> <ns1:oprTime xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">20121011094323</ns1:oprTime>
> <ns1:cfmResult xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">00</ns1:cfmResult>
> </ns2:subscribeServCfmReq>
> </ns2:subscribeServCfm>
> </soapenv:Body>
> then cxf thrwo exception
> Interceptor for {http://main.ehealth.funo.com/}UserOrderServer#{http://mai
> n.ehealth.funo.com/}subscribeServCfm has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://www.chinamo
> bile.com/vgop/serviceorder/v1_0}subscribeServCfm found.   Expected {http://main.
> ehealth.funo.com/}subscribeServCfm.
> 
> when i use cxf client, it works fine ,the message is that :
> <ns3:subscribeServCfm
> xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0"
> xmlns:ns3="http://main.ehealth.funo.com/">
> <subscribeServCfmReq>
> <cfmResult>00</cfmResult>
> <msgTransactionID>qq</msgTransactionID>
> <oprTime>123</oprTime>
> </subscribeServCfmReq>
> </ns3:subscribeServCfm>
> 
> 
> 
> so i want to ignore the namespace , i have google the answer  , ti try @EndpointProperty(key = "soap.no.validate.parts", value = "true")  but it not work,
> how could do to solve the problem?
> 
> 
> 
> cantalou89



回复: Re: cxf 2.6.2 how to ignore namespace

Posted by cantalou89 <ca...@gmail.com>.
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="  
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
        http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
        
<jaxws:endpoint id="UserOrderServer" address="/UserOrderServer.jws" implementor="com.funo.ehealth.main.UserOrderServerImpl">
<jaxws:properties>
<entry key="soap.no.validate.parts" value="true" />
</jaxws:properties>
<jaxws:features>
<bean id="transformFeature" class="org.apache.cxf.feature.StaxTransformFeature">
<property name="inTransformElements">
<map>
<entry key="{http://www.chinamobile.com/vgop/serviceorder/v1_0}*" value="{http://main.ehealth.funo.com/}*" />
</map>
</property>
</bean>
<bean class="org.apache.cxf.feature.LoggingFeature" />
</jaxws:features>
</jaxws:endpoint>

</beans>
this is the beans.xml



cantalou89

发件人: Freeman Fang
发送时间: 2012-10-11 10:14
收件人: users; cantalou89
主题: Re: cxf 2.6.2 how to ignore namespace
Hi,


The namespace mismatch between client and server cause this issue, I don't think you can really "ignore" namespace, however, cxf transform feature can help you to overcome this kind of issue, take a look at [1] to get more details
[1]http://cxf.apache.org/docs/transformationfeature.html

-------------
Freeman Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042


On 2012-10-11, at 上午10:10, cantalou89 wrote:


dear all:
i want to ignore soap namespace,

i receive a message from axis2 client :
<soapenv:Body>
<ns2:subscribeServCfm 
xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0">
<ns2:subscribeServCfmReq>
<ns1:msgTransactionID xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">555</ns1:msgTransactionID>
<ns1:oprTime xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">20121011094323</ns1:oprTime>
<ns1:cfmResult xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">00</ns1:cfmResult>
</ns2:subscribeServCfmReq>
</ns2:subscribeServCfm>
</soapenv:Body>
then cxf thrwo exception 
Interceptor for {http://main.ehealth.funo.com/}UserOrderServer#{http://mai
n.ehealth.funo.com/}subscribeServCfm has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://www.chinamo
bile.com/vgop/serviceorder/v1_0}subscribeServCfm found.   Expected {http://main.
ehealth.funo.com/}subscribeServCfm.

when i use cxf client, it works fine ,the message is that :
<ns3:subscribeServCfm 
xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0" 
xmlns:ns3="http://main.ehealth.funo.com/">
<subscribeServCfmReq>
<cfmResult>00</cfmResult>
<msgTransactionID>qq</msgTransactionID>
<oprTime>123</oprTime>
</subscribeServCfmReq>
</ns3:subscribeServCfm>



so i want to ignore the namespace , i have google the answer  , ti try @EndpointProperty(key = "soap.no.validate.parts", value = "true")  but it not work,
how could do to solve the problem?



cantalou89

回复: Re: cxf 2.6.2 how to ignore namespace

Posted by cantalou89 <ca...@gmail.com>.
thanks for you reply ,
after readed the document,i add
<bean id="transformFeature" class="org.apache.cxf.feature.StaxTransformFeature">
<property name="inTransformElements">
<map>
<entry key="http://www.chinamobile.com/vgop/serviceorder/v1_0" value="http://main.ehealth.funo.com/" />
</map>
</property>
</bean>
in the spring beans.xml, but when look the log , the "http://www.chinamobile.com/vgop/serviceorder/v1_0" was not replaced by "http://main.ehealth.funo.com/",
or org.apache.cxf.feature.StaxTransformFeature works after the log interceptor? or what can do to make StaxTransformFeature work with the public endpoint?



cantalou89

发件人: Freeman Fang
发送时间: 2012-10-11 10:14
收件人: users; cantalou89
主题: Re: cxf 2.6.2 how to ignore namespace
Hi,


The namespace mismatch between client and server cause this issue, I don't think you can really "ignore" namespace, however, cxf transform feature can help you to overcome this kind of issue, take a look at [1] to get more details
[1]http://cxf.apache.org/docs/transformationfeature.html

-------------
Freeman Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042


On 2012-10-11, at 上午10:10, cantalou89 wrote:


dear all:
i want to ignore soap namespace,

i receive a message from axis2 client :
<soapenv:Body>
<ns2:subscribeServCfm 
xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0">
<ns2:subscribeServCfmReq>
<ns1:msgTransactionID xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">555</ns1:msgTransactionID>
<ns1:oprTime xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">20121011094323</ns1:oprTime>
<ns1:cfmResult xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">00</ns1:cfmResult>
</ns2:subscribeServCfmReq>
</ns2:subscribeServCfm>
</soapenv:Body>
then cxf thrwo exception 
Interceptor for {http://main.ehealth.funo.com/}UserOrderServer#{http://mai
n.ehealth.funo.com/}subscribeServCfm has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://www.chinamo
bile.com/vgop/serviceorder/v1_0}subscribeServCfm found.   Expected {http://main.
ehealth.funo.com/}subscribeServCfm.

when i use cxf client, it works fine ,the message is that :
<ns3:subscribeServCfm 
xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0" 
xmlns:ns3="http://main.ehealth.funo.com/">
<subscribeServCfmReq>
<cfmResult>00</cfmResult>
<msgTransactionID>qq</msgTransactionID>
<oprTime>123</oprTime>
</subscribeServCfmReq>
</ns3:subscribeServCfm>



so i want to ignore the namespace , i have google the answer  , ti try @EndpointProperty(key = "soap.no.validate.parts", value = "true")  but it not work,
how could do to solve the problem?



cantalou89

Re: cxf 2.6.2 how to ignore namespace

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

The namespace mismatch between client and server cause this issue, I don't think you can really "ignore" namespace, however, cxf transform feature can help you to overcome this kind of issue, take a look at [1] to get more details
[1]http://cxf.apache.org/docs/transformationfeature.html
-------------
Freeman Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: http://weibo.com/u/1473905042

On 2012-10-11, at 上午10:10, cantalou89 wrote:

> dear all:
> i want to ignore soap namespace,
> 
> i receive a message from axis2 client :
> <soapenv:Body>
> <ns2:subscribeServCfm 
> xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0">
> <ns2:subscribeServCfmReq>
> <ns1:msgTransactionID xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">555</ns1:msgTransactionID>
> <ns1:oprTime xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">20121011094323</ns1:oprTime>
> <ns1:cfmResult xmlns:ns1="http://www.chinamobile.com/vgop/serviceorder/v1_0/common">00</ns1:cfmResult>
> </ns2:subscribeServCfmReq>
> </ns2:subscribeServCfm>
> </soapenv:Body>
> then cxf thrwo exception 
> Interceptor for {http://main.ehealth.funo.com/}UserOrderServer#{http://mai
> n.ehealth.funo.com/}subscribeServCfm has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Unexpected wrapper element {http://www.chinamo
> bile.com/vgop/serviceorder/v1_0}subscribeServCfm found.   Expected {http://main.
> ehealth.funo.com/}subscribeServCfm.
> 
> when i use cxf client, it works fine ,the message is that :
> <ns3:subscribeServCfm 
> xmlns:ns2="http://www.chinamobile.com/vgop/serviceorder/v1_0" 
> xmlns:ns3="http://main.ehealth.funo.com/">
> <subscribeServCfmReq>
> <cfmResult>00</cfmResult>
> <msgTransactionID>qq</msgTransactionID>
> <oprTime>123</oprTime>
> </subscribeServCfmReq>
> </ns3:subscribeServCfm>
> 
> 
> 
> so i want to ignore the namespace , i have google the answer  , ti try @EndpointProperty(key = "soap.no.validate.parts", value = "true")  but it not work,
> how could do to solve the problem?
> 
> 
> 
> cantalou89