WARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector
背景
切换环境后修改了相关配置,比如jdk,Maven,数据库连接,运行代码后程序报错,控制台报错信息如下
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.ibatis.reflection.Reflector (file:/D:/software/Maven/apache-maven-3.9.9/repo/org/mybatis/mybatis/3.2.1/mybatis-3.2.1.jar) to method java.lang.Object.finalize()
WARNING: Please consider reporting this to the maintainers of org.apache.ibatis.reflection.Reflector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.
Exception in thread "main" java.lang.ExceptionInInitializerErrorat org.teljane.db.I18nRepository.<init>(I18nRepository.java:26)at org.teljane.AppRunner.validateConnection(AppRunner.java:60)at org.teljane.AppRunner.main(AppRunner.java:46)
Caused by: java.lang.RuntimeException: 数据库连接验证失败at org.teljane.db.MyBatisConfig.validateDatabaseConnection(MyBatisConfig.java:61)at org.teljane.db.MyBatisConfig.<clinit>(MyBatisConfig.java:43)... 3 more
Caused by: org.apache.ibatis.exceptions.PersistenceException:
### Error opening session. Cause: java.lang.NullPointerException
### Cause: java.lang.NullPointerExceptionat org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource(DefaultSqlSessionFactory.java:88)at org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSession(DefaultSqlSessionFactory.java:43)at org.teljane.db.MyBatisConfig.validateDatabaseConnection(MyBatisConfig.java:53)... 4 more
Caused by: java.lang.NullPointerExceptionat org.apache.ibatis.session.defaults.DefaultSqlSessionFactory.openSessionFromDataSource(DefaultSqlSessionFactory.java:83)... 6 moreProcess finished with exit code 1
问题分析
看报错信息和数据库,mybatis有关,看了一下数据库配置文件db.properties
木有问题,最后发现是mybatis-config.xml
的default环境配置写错了,写了一个不存在的环境id,需要写正确的已存在的环境id,修改后成功运行