使用ANT和AXIS2 1.8.0从WSDL生成Java代码报XMLBeans错误如何解决
问题原因
Axis2 1.8.0版本和1.7.9版本的依赖结构不同,1.7.x版本默认内置了XMLBeans绑定扩展相关的依赖,1.8.x版本将该扩展从核心发行包中拆分出去,仅全局安装XMLBeans无法被Axis2的代码生成工具识别,所以会抛出类路径缺失的异常。
解决方案
以下三种方案任选一种即可解决问题:
方案1:补全Axis2 1.8.0的XMLBeans绑定依赖
- 下载和Axis2 1.8.0版本匹配的依赖包:
axis2-xmlbeans-1.8.0.jar、xmlbeans-3.1.0.jar、xmlbeans-xpath-3.1.0.jar(注意不要使用4.x及以上版本的XMLBeans,版本不兼容会触发新的报错) - 将上述三个jar包放入Axis2 1.8.0安装目录的
lib文件夹中 - 如果你的ANT脚本单独配置了Axis2类路径,需要同步将这三个jar包添加到ANT调用
WSDL2Java任务的类路径配置里
方案2:切换为ADB数据绑定(无需额外依赖)
如果你的业务没有强制要求使用XMLBeans作为数据绑定框架,可以显式指定Axis2默认自带的ADB绑定,不需要额外添加依赖:
在ANT调用WSDL2Java的参数中添加-d adb即可,配置示例如下:
<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true"> <arg line="-uri 你的WSDL文件路径 -o 代码输出目录 -d adb"/> <classpath refid="你配置的Axis2类路径ID"/> </java>
方案3:回退到兼容的1.7.x版本
如果前两种方案都不符合你的使用需求,直接继续使用Axis2 1.7.9版本生成代码即可,该版本的XMLBeans绑定是内置支持的,不需要额外配置。
内容的提问来源于stack exchange,提问作者user17069909
相关产品推荐
相关产品推荐

