不同jdk版本中webservice特别注意的细节
程序员文章站
2022-07-07 22:46:36
...
【问题现象】使用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
)
打赏分享者
如果这个分享对您提供了帮助,那就打赏我吧,有钱捧个钱场(支持支付宝和微信捐助),没钱捧个人场,有了大家的支持,我们会更有动力,会做的更好的,谢谢各位。