在使用Axis2_Codegen_Wizard時(shí)出現(xiàn)問(wèn)題,最后一步點(diǎn)擊finish時(shí),報(bào)錯(cuò)-java.lang.reflect.InvocationTargetException等等。查了網(wǎng)上資料,此問(wèn)題出現(xiàn)很多,原因各不相同。相對(duì)于Axis2的這個(gè)代碼生成插件,在國(guó)外的一論壇上發(fā)現(xiàn)解決方案,嘗試有效:
1、在axis2-1.4.1-war\axis2\WEB-INF\lib目錄下,復(fù)制
backport-util-concurrent-3.1.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
這兩個(gè)文件至MyEclipse 6.5\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\lib下,同時(shí)要編輯MyEclipse 6.5\eclipse\plugins\Axis2_Codegen_Wizard_1.3.0下的plugin.xml,將這兩個(gè)文件添加進(jìn)去(復(fù)制粘貼兩項(xiàng),修改jar文件名為新拷入的文件名即可),再使用codegen插件即可正常生成代碼。
2、若問(wèn)題仍存在, 嘗試改變Eclipse 使用的 JRE,使用 JRE 1.6 ,重新啟動(dòng) Eclipse。
3、若仍有問(wèn)題,將 $workspace位置\.metadata\.plugins下目錄 Axis2_Codegen_Wizard 刪除,在命令行下切換至$ECLIPSE_HOME目錄,然后執(zhí)行:eclipse -clear
4、重新啟動(dòng) Eclipse ,應(yīng)可解決問(wèn)題。
我最后在使用過(guò)程中又出現(xiàn)了這樣一個(gè)異常:Exception in thread "main" org.apache.axis2.wsdl.codegen.CodeGenerationException : Error parsing WSDL,出現(xiàn)了這個(gè)錯(cuò)誤,我馬上上網(wǎng)查資料,中文網(wǎng)站好像還有人解決這個(gè)問(wèn)題,我也查了很多國(guó)外網(wǎng)站上面網(wǎng)友提出的相同問(wèn)題,都沒(méi)人真正解決這個(gè)問(wèn)題。我只有自己搞了,最后終于被我搞出來(lái)了,我分析一下出現(xiàn)這種錯(cuò)誤的原因。
原因是:原來(lái)安裝的那個(gè)Axis2_Codegen_Wizard是有錯(cuò)的,也就是從官方下載下來(lái)的,但安裝起了過(guò)后它會(huì)報(bào)java.lang.reflect.InvocationTargetException,以至于不能正確生成代碼。當(dāng)你安裝了修改過(guò)后的無(wú)Bug這個(gè)Axis2_Codegen_Wizard插件過(guò)后,再按上面第3步操作,就沒(méi)問(wèn)題了。就這樣簡(jiǎn)單。
這里特別注意:在做項(xiàng)目的時(shí)候仔細(xì)一點(diǎn),用測(cè)試程序的時(shí)候要看看Tomcat是否開(kāi)著,如果你沒(méi)開(kāi)著,一報(bào)錯(cuò),你一慌了,更多的時(shí)間都浪費(fèi)了。