java.lang.reflect.InvocationTargetException


微妙的一個異常信息java.lang.reflect.InvocationTargetException。

  這幾天項目正在不斷測試、演示中,當我把項目交給測試和實施部的時候項目一切運行正常,可是昨天一實施人員告訴我,系統部署到tomcat中啟動運行報出了一個異常,發給我看了一下,我的個乖乖,這個異常信息這么久我還是頭一次看見,於是趕緊的上網查了一下資料,后來通過各種測試,環境搭建模擬發現產生該異常信息的主要原因可能是一下幾點:

  1、包沖突、有重復包或者缺少包

  2、項目jdk和部署jdk版本不一樣,導致InvocationTargetException異常信息返回一個空值,沒有調用invoc里的重寫消息方法。

  3、映射文件發生改變

對於不同原因的解決:

  1、包:直接自己挨着查看就是了,但是一定要注意遇到重復包的時候你的系統究竟需要哪一個版本

  2、jdk版本:

    ⑴、更換jdk包

    ⑵、用一個方法統一處理該異常

      private static void handleException(Exception e){

        String msg=null;

        if(e instanceof InvocationTargetException){

          Throwable targetEx=((InvocationTargetException)e).getTargetException();

          if(targetEx t!=null){

            msg=targetEx.getMessage();

          }

        }else{

          msg=e.getMessage();

        }

      MessageDialong.openError(Activator.getDetDefault().getWorkbench().getDisplay().getActiveshell(),"error",msg);

      e.printStackTrace();

      }

    3、映射文件發生改變

      在項目中有的地方是使用反射機制進行的操作,可能對於類進行了某些更改,科室映射文件沒有更改,采用匿名就會出現這樣的問題,解決辦法要么更改映射文件,要不不要使用匿名調用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM