jfinal-启动-数据库报错

报错信息如下:

2017-09-06 06:55:15  [ localhost-startStop-1:0 ] - [ INFO ]  {dataSource-1} inited

2017-09-06 06:55:15  [ localhost-startStop-1:16 ] - [ ERROR ]  Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin. 

java.lang.NullPointerException

com.jfinal.plugin.activerecord.ActiveRecordException: java.lang.NullPointerException

at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:50)

at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:209)

at com.jfinal.core.Config.startPlugins(Config.java:107)

at com.jfinal.core.Config.configJFinal(Config.java:53)

at com.jfinal.core.JFinal.init(JFinal.java:63)

at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)

at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)

at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)

at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)

at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4939)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)

at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1260)

at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2002)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

at java.util.concurrent.FutureTask.run(FutureTask.java:262)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.NullPointerException

at com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:350)

at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:557)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:876)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:872)

at com.alibaba.druid.pool.DruidDataSource.getConnection(DruidDataSource.java:97)

at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:38)

... 21 more


----------------------------------------------------------------------

在 myeclipse直接运行mainConfing是能正常启动,但是放到服务器上的tomcat 老是报这个错。求解释


评论区

geekswg

2017-09-06 11:50

有没有人呀!

JFinal

2017-09-06 13:15

解决空指针的问题,没有什么好的办法,老老实实单步调试,找到那个值为 null 的对象,然后让它不为 null 立即就解决了

geekswg

2017-09-06 13:41

@JFinal 波总,主要是放到服务器上tomcat才出现这个问题,本机上是正常的,所以比较无语,不知道哪地方出问题了。

geekswg

2017-09-06 13:42

// 配置数据库连接池插件
DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
me.add(druidPlugin);

// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.setShowSql(true);
// 所有映射在 MappingKit 中自动化搞定
_MappingKit.mapping(arp);
me.add(arp);

JFinal

2017-09-06 13:58

根据下面的异常:
at com.jfinal.plugin.activerecord.TableBuilder.build(TableBuilder.java:50)

找到你在用的 jfinal 版本的 TableBuilder.java 的第 50 行代码,分析哪个对象可能是 null,然后一直反推

geekswg

2017-09-21 12:48

@JFinal 波总,是这样的,我编译好把部署文件放到tomcat服务器上面,如果不修改配置文件,就能正常运行,如果修改了db.propeties,就会出现上面的我问题,只能重新在本地编译下在把整个项目部署到tomcat上?为什么会这样尼?

JFinal

2017-09-21 14:44

@geekswg 这个问题不好猜,建议单步调试定位错误

西山老牛

2017-12-08 16:37

今天碰到同样的问题, 追踪到com.alibaba.druid.util.JdbcUtils.getDriverClassName(JdbcUtils.java:350), 发现是配置文件中jdbcUrl那串字符是 null, 判断是配置文件的问题, 从另外一台机器拷贝一个好用的配置文件, 问题解决

叮咚咚

2018-08-23 16:26

@JFinal 你好,请问一下MappingKit.mapping(arp)报错怎么回事啊?谢谢

JFinal

2018-08-23 22:51

@西山老牛 挺多人碰到这个问题的,是因为你们用 windows 的记事本对配置文件进行了编辑,而记事本保存数据的时候会将 utf-8 文件中的头部一个特征字符改变,所以造成 jdbcUrl 读成了 dbcUrl,也就是少了一个字符 "j"

解决办法极其简单,在配置文件第一行加一行注释,或者在第一行换一行,让第一行留空就好,纯粹是 windows 记事本的坑

热门反馈

扫码入社