读书人

JAXB入门学习(5)

发布时间: 2012-10-12 10:17:04 作者: rapoo

JAXB入门学习(五)

在使用JAXB 的xjc任务时出现java.lang.IllegalArgumentException异常,具体如下:

BUILD FAILEDC:\Jdeveloper\mywork\xml\xml-schema\build.xml:27: java.lang.IllegalArgumentException: Expected class javax.xml.bind.annotation.XmlAccessType but found class javax.xml.bind.annotation.AccessTypeTotal time: 4 seconds

?

出错环境:使用jdk1.6 + jwsdp2.0中自带的jaxb2.0(但是在使用jdk1.5 + jwsdp2.0自带jaxb2.0时却不会出现该异常)

错误原因:
在jdk1.5 并没有将javax.xml.bind纳入其中,在结合jwsdp2.0的jaxb时候使用的是其自带的jaxb-api.jar
而在jaxb-api.jar这个文件中带有javax.xml.bind.annotation.AccessType
但是在使用jdk1.6时,javax.xml.bind已经纳入1.6中,而且将AccessType改名为XmlAccessType(还有AccessorType等),
这时如果再使用jwsdp2.0的jaxb自带的jaxb-api.jar就会出现上述异常
解决办法:升级jaxb,下载jaxb-ri 2.2.1?

如附件(从官网下载https://jaxb.dev.java.net/2.2.1/),然后转换到下载目录执行命令:

java -jar JAXB2_20100511.jar
然后使用生成的jaxb-ri-20100511目录下的JAXB的jar包即可。

读书人网 >软件架构设计

热点推荐