不同jdk版本中webservice特别注意的细节

本文介绍了在使用JDK8或部分JDK7运行CXF WebService项目时遇到的问题,即在处理复杂类型值传递时,若返回值类型为Map等接口,不加特殊处理会报错。解决办法是在所有WebServcie接口API的方法Map参数或返回值前添加@XmlJavaTypeAdapter(MapAdapter.class)注解,以确保在不同JDK版本下兼容。同时,作者鼓励读者如果觉得内容有帮助,可以通过打赏来支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  【问题现象】使用JDK8或者少部分JDK7跑cxf项目时报此错误:

 

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
java.util.Map is an interface, and JAXB can't handle interfaces.
	this problem is related to the following location:
		at java.util.Map
		at private java.util.Map com.pn.common.webservice.api.jaxws_asm.GetActivityEgameRebateConfigListTotal.arg0
		at com.pn.common.webservice.api.jaxws_asm.GetActivityEgameRebateConfigListTotal
java.util.Map does not have a no-arg default constructor.
	this problem is related to the following location:
		at java.util.Map
		at private java.util.Map com.pn.common.webservice.api.jaxws_asm.GetActivityEgameRebateConfigListTotal.arg0
		at com.pn.common.webservice.api.jaxws_asm.GetActivityEgameRebateConfigListTotal

 

【问题分析】

有的jdk版本中webService复杂类型值传递时,返回值的类型使用Map等接口如果不加特殊处理,则会报此错误。

 

【解决方案】未防止以后运维升级jdk版本或者开发升级jdk版本出现报错的现象,应将所有webservice接口api的方法Map参数或返回值前加上:

@XmlJavaTypeAdapter(MapAdapter.class

)

 

 

 

 

 

 

 

 

 

 

 

打赏分享者

          如果这个分享对您提供了帮助,那就打赏我吧,有钱捧个钱场(支持支付宝和微信捐助),没钱捧个人场,有了大家的支持,我们会更有动力,会做的更好的,谢谢各位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值