@PostConstruct导致程序启动报空指针,程序启动初始化时需要调用几个查询,但是就报错了

苏生Susheng 2020-09-29 02:37:53
14:35:20.616 [restartedMain] ERROR o.s.b.SpringApplication - [reportFailure,771] - Application startup failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'machineInit': Invocation of init method failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:137)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1620)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:555)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:296)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:134)
at com.hzwq.micro.JsApplication.main(JsApplication.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy116.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:75)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy151.getSysPara(Unknown Source)
at com.hzwq.micro.xcjs.config.CommonManager.getSysPara(CommonManager.java:107)
at com.hzwq.micro.common.util.CommonUtil.getSysPara(CommonUtil.java:121)
at com.hzwq.micro.common.util.MachineInit.init(MachineInit.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:311)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:134)
... 24 common frames omitted
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error querying database. Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerException
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
... 40 common frames omitted
Caused by: java.lang.NullPointerException: null
at com.hzwq.eom.sqltransformer.SpringUtil.getBean(SpringUtil.java:27)
at com.hzwq.eom.sqltransformer.MybatisInterceptor.intercept(MybatisInterceptor.java:55)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)
at com.sun.proxy.$Proxy164.query(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
... 46 common frames omitted
Disconnected from the target VM, address: '127.0.0.1:57911', transport: 'socket'

Process finished with exit code 0
...全文
3422 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
一只三黄鸡 2021-02-23
  • 打赏
  • 举报
回复
猜测是spring还没初始化,你就直接调用bean了,建议手动进行bean的注入,不要用注解
MaaRVO 2021-02-18
  • 打赏
  • 举报
回复
请问楼主解决这个问题了吗,我也遇到了
亦夜 2020-09-30
  • 打赏
  • 举报
回复
引用 7 楼 weixin_37833693 的回复:
引用 3 楼 亦夜 的回复:
查看该machineInit对象是否成功注入,这种是比较常见但又不是很友好的问题,一般我都是采用断点的方式查看该对象,在我期望的地方为什么没有被初始化
我能判断出来是在执行SQL查询时,数据源的一些相关对象没有创建完成就开始执行查询了
你可以尝试使用@Service 注解定义服务别名,然后在注入的时候使用 @Autowired + @Qualifier指定服务名称
苏生Susheng 2020-09-30
  • 打赏
  • 举报
回复
引用 3 楼 亦夜 的回复:
查看该machineInit对象是否成功注入,这种是比较常见但又不是很友好的问题,一般我都是采用断点的方式查看该对象,在我期望的地方为什么没有被初始化
我能判断出来是在执行SQL查询时,数据源的一些相关对象没有创建完成就开始执行查询了
苏生Susheng 2020-09-30
  • 打赏
  • 举报
回复
引用 2 楼 KeepSayingNo 的回复:
看看这个bean:machineInit是否加了注解表示它是一个bean,是否能被容器扫到
@Component和@Service都试过,不行的
苏生Susheng 2020-09-30
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
那你就按报错的行查看代码,看看哪个查询结果检索不到,所以出空指针错误了
at com.hzwq.micro.common.util.MachineInit.init(MachineInit.java:24)
不是查询结果,准备执行查询的时候报错
尘风-随手记 2020-09-30
  • 打赏
  • 举报
回复
Error creating bean with name 'machineInit',说明创建machineInit这个备案时报错,看看是不是没有加注解
亦夜 2020-09-29
  • 打赏
  • 举报
回复
查看该machineInit对象是否成功注入,这种是比较常见但又不是很友好的问题,一般我都是采用断点的方式查看该对象,在我期望的地方为什么没有被初始化
KeepSayingNo 2020-09-29
  • 打赏
  • 举报
回复
看看这个bean:machineInit是否加了注解表示它是一个bean,是否能被容器扫到
qybao 2020-09-29
  • 打赏
  • 举报
回复
那你就按报错的行查看代码,看看哪个查询结果检索不到,所以出空指针错误了
at com.hzwq.micro.common.util.MachineInit.init(MachineInit.java:24)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧