zoukankan      html  css  js  c++  java
  • 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包。

  • 相关阅读:
    yum安装工具的理解
    Linux防火墙
    Python的优雅写法
    Python的time模块
    Python中根据提供的日期,返回是一年中的第几天
    观察者模式
    数据插入INSERT
    RSA加密、解密、签名、校验签名
    js的apply和call
    js插件编程-tab框
  • 原文地址:https://www.cnblogs.com/fxl-njfu/p/10071523.html
Copyright © 2011-2022 走看看