首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JAXB入门学习(5)

2012-10-12 
JAXB入门学习(五)在使用JAXB 的xjc任务时出现java.lang.IllegalArgumentException异常,具体如下:BUILD FAI

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包即可。

热点排行