JAXB 的xjc任务时出现java.lang.IllegalArgumentException异常

来源:互联网 发布:电子表格软件免费下载 编辑:程序博客网 时间:2024/05/14 12:13

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

Java代码 复制代码收藏代码
  1. BUILD FAILED 
  2. C:\Jdeveloper\mywork\xml\xml-schema\build.xml:27: java.lang.IllegalArgumentException: Expectedclass  
  3.  
  4. javax.xml.bind.annotation.XmlAccessType but found class javax.xml.bind.annotation.AccessType 
  5.  
  6. Total 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包即可。

原创粉丝点击