CXF输入和输出报文都需要命名空间前缀,但响应报文就是不出来。(解决)

在使用CXF 2.4.3版本时遇到输入和输出报文需要命名空间前缀的问题,通过修改package-info.java、调整ObjectFactory.java以及自定义CSGIIOutInterceptor拦截器解决了命名空间前缀缺失的问题,避免了数据量大时返回报文空白的错误。
摘要由CSDN通过智能技术生成

查找了很多资料,咨询了几个大神,终于在大家帮助和自己研究下找到了解决的办法。

问题出处:http://www.oschina.net/question/1022038_2190391

问题解决方法:

1.下图是接口相关的实体类:

2.package-info.java是声明命名空间前缀的主要类,在cxf版本较高的情况下,按道理是正常的。但楼主的cxf是现有项目已经存在的版本,稍微早一点,是cxf-2.4.3,关联的接口较多不敢轻易做升级,所以改变了写法如下:

@javax.xml.bind.annotation.XmlSchema(xmlns = { @XmlNs(namespaceURI = "http://oa.soa.csg.cn",prefix = "oa") },namespace = "http://oa.soa.csg.cn",elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package cn.csg.soa.oa.workbench;
import javax.xml.bind.annotation.XmlNs;

3.然后就是拦截器了,正常情况下,只是用来记录日志报文的。但是2.4.3版本比较老,不用拦截器处

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值