spring boot生成的war包運行時出現java.lang.NullPointerException: null


最近寫了一個數據庫同步的程序,見之前的博客,沒有用到spring框架來集成,用的時純Java代碼。然后,項目經理要我把程序合到spring boot框架中,因為涉及到多數據源,時間又比較緊,同意我直接將純Java代碼合進去。

用的jenkins進行部署,當部署成功后,發現出現一個錯誤:

定位到代碼處:

1 String resource = "com/huifu/newhl/nobel/config/mybatis-configuration.xml";
2         InputStream inputStream = null;
3         try {
4             inputStream = Resources.getResourceAsStream(resource);
5         } catch (IOException e) {
6             e.printStackTrace();
7         }
8         SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(inputStream, dataName);
9         SqlSession session = sessionFactory.openSession();

在第8行,報了nullPointer。那就奇怪了,明明在純Java代碼環境,可以正常運行,怎么通過spring boot打包發布到jboss上運行就不行了。百思不得其解,只好去問項目經理,項目經理還是有經驗,首先不要慌!仔細分析問題原因,建議到百度搜索JBOSS Resources.getResourceAsStream null,然后大概定位出問題,是因為我的xml文件放在src/main/java路徑下,當打包成war包的時候,並沒有生成相應的文件,導致查詢不到,我解壓了war包,到下面一看,果然沒有config目錄!

那當然找不到xml文件,自然報null錯誤,項目經理說要把xml文件放在src/main/resouces目錄下面,相同的路徑。至此,問題基本已經解決,即src/main/java和src/main/resouces的區別,可以參考這篇博客:https://blog.csdn.net/jsflzhong/article/details/52077075,maven打包的時候,認為src/main/java就是源代碼的文件,xml文件不會被打包進如jar或者war包。


免責聲明!

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



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