myeclipse里用axis2插件生成代码时出现java.lang.reflect.InvocationTargetException异常的处理

myeclipse里用axis2插件生成代码时出现java.lang.reflect.InvocationTargetException错误的处理

本人在学习Axis2过程中,使用axis2提供的两个myeclipse插件时,生成代码最后点“完成”时,老出现java_lang_reflect_InvocationTargetException错误。弄了两天时间,终于找到解决的办法。
本人的环境如下:
Myeclipse 5.1 GA
Axis2 1.4.1
插件安装略,

问题现象:
在用插件生成代码时,老是在最后点击“finish”时出现java_lang_reflect_InvocationTargetException错误。开始时以为是我本人的系统环境变量出现问题,后来查找原因,是因为插件的原因。

问题原因:
主要的问题在于 Code Generator plugin 内缺少了 backport-util-concurrent-3.1.jar 包

解决方案:

1.关闭正在运行的myeclipse
  在axis2-1.4.1-war\axis2\WEB-INF\lib目录下,复制backport-util-concurrent-3.1.jar和geronimo-stax-api_1.0_spec-1.0.1.jar两个包到myeclipse 的插件安装MyEclipse 5.1.1 GA\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\lib目录下,同时要编辑MyEclipse 6.5\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0下的plugin.xml,将这两个文件添加进去(复制粘贴两项,修改jar文件名为新拷入的文件名即可).修改plugin.xml时,在 <runtime> 內加入下面的字串
<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>

2.如果重新启动Myeclipse,问题依然存在,尝试改变Eclipse 使用的 JRE, 换成 JAVA 6
- 使用 JRE 1.6 启动 Eclipse 后, 若仍有问题, 试着加入 -clean 参数启动 Eclipse, 清除 osig cache:
eclipse.exe -vm "C:\Program Files\Java\jdk1.6.0\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M,此项修改可修改一下Myeclipse的快捷方式来实现。右键点击“Myeclipse”的快捷方式,修改目标项,为:
"D:\Program Files\MyEclipse 5.1.1 GA\eclipse\eclipse.exe" -vm "d:\Program Files\MyEclipse 5.1.1 GA\jre\bin\javaw.exe" -vm "C:\Program Files\Java\jdk1.6.0\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M
注意:第一个引号内容为本人的MyEclipse 的安装路径, 第二个引号内容为本人的JDK6的安装路径。将此两项根据实际改为自己的就可以了,确定后,重新启动MyEclipse 会出现一个控制台的输出。此时再用插件生成代码,就OK了。最后,再改一下快捷方式,恢复为以前的就可以去掉控制台的输出了。

- 关闭 Eclipse 后, 再以一般方式启动 Eclipse, 应可解决问题

 

"F:\Program Files\Java\jdk1.6.0_13\bin\java.exe" -clean -console -consoleLog -debug -vmargs -Xmx384M