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