如题,楼主折腾一天了,就是出不来想要的效果,简单给大家描述下:
1.想要的效果如图:
2.但做出来的效果却如图:(~~~~(>_<)~~~~)
3.结果首先功能没# ( \ G Q有问题已经过验证,x = d K d f 6所以就是哪里需要配置下就好,愣是找不到还需要配哪里。
如图,这是cxf的配置文件,命名空间已加。
4.后来网上找了资料,问了大神们,都说需要加一个package-info.java在同一目录下即可。
如图,这俩文件都加了。
代码如下:
package-info.java:
@javax.xml.bind.annotation.XmlSchema(namespace = “http://oa.soa.csg.cn”,elementFormDefault = java{ | 7 U dx.xml.bind.annotation.XmlNsForm.QUALIFIEDw r R m)
package cn.csg.soa.oa.workbenX U y X c 3ch;
ObjectFactory.java,比较长$ D /,就只截出关键部分:
—————-N @ % D G ?——————-g b D F b q—-B ) * h——-
PS:该加的都加了,可用soapui工具进行wsdl地址的调r F z C 2试时,请求报文如1图所示,是有空间前缀的。但是响应报文如图所示就是没有,无奈f w p – f 2 H了已经。
PS2:然后又搜了一些资料,有一个大神说把ObjectFactory– r $ , _ V 5 O.java中response的namespace=“”,就能出来了,事6 G 4 X实是,确实出来了,但是是ns2,不是@ { m a V y U自己想要的。
PS3:如上,想到既然是ns2,干脆用cxf的拦截器获取报文然后全部改成oa不就好了吗,然后又去网上找了拦截器的资料,根据参考代码实现了,我靠,还a 6 r T c E R H真可以。
PS4:如上,高兴之余,以为自己牛笔了搞定了,结果发现cxf拦截器获取报文的那段代码如果数据过大,就不会打印出^ _ W来,尼玛,不打印出来我还改个J8啊……然后就泪崩了。~~o(>_<)o ~~
以上便是楼主心路历程,领导还一直催着赶紧完成,楼主依然5 D Z接近崩溃,希望遇到过类似问题的大神伸出援助之n – 1 \手,好人一生平W x ^安,祝r ^ o ~ 8 g ~你遇到美女倒8 ^ L \ # W B h W贴。