JFinal升级到1.6出现NullPointerException? 400 报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

JFinal升级到1.6出现NullPointerException? 400 报错

2020-06-02 11:35:30 100 1

JFinal升级到1.6出现NullPointerException? 400 报错

JFinal升级到1.6,Druid升级到1.0.4
session 过期后会删除数据库的记录,然后就NullPointerException
出错代码在
com.jfinal.plugin.activerecord.Db.update(Db.java:290)
config.close(conn);


public static int update(String configName, String sql, Object... paras) {
		Config config = DbKit.getConfig(configName);
		Connection conn = null;
		try {
			conn = config.getConnection();
			return update(config, conn, sql, paras);
		} catch (Exception e) {
			throw new ActiveRecordException(e);
		} finally {
			config.close(conn);
		}
	}




Tomcat 异常信息:

type Exception report

message Filtered request failed.

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Filtered request failed.
	org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
	org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
root cause

java.lang.NullPointerException
	com.jfinal.plugin.activerecord.Db.update(Db.java:290)
	com.power.oj.core.model.SessionModel.deleteSession(SessionModel.java:43)
	com.power.oj.core.service.SessionService.deleteSession(SessionService.java:132)
	com.power.oj.shiro.OjSessionListener.onExpiration(OjSessionListener.java:17)
	org.apache.shiro.session.mgt.AbstractNativeSessionManager.notifyExpiration(AbstractNativeSessionManager.java:168)
	org.apache.shiro.session.mgt.AbstractValidatingSessionManager.onExpiration(AbstractValidatingSessionManager.java:157)
	org.apache.shiro.web.session.mgt.DefaultWebSessionManager.onExpiration(DefaultWebSessionManager.java:269)
	org.apache.shiro.session.mgt.AbstractValidatingSessionManager.validate(AbstractValidatingSessionManager.java:145)
	org.apache.shiro.session.mgt.AbstractValidatingSessionManager.doGetSession(AbstractValidatingSessionManager.java:120)
	org.apache.shiro.session.mgt.AbstractNativeSessionManager.lookupSession(AbstractNativeSessionManager.java:108)
	org.apache.shiro.session.mgt.AbstractNativeSessionManager.getSession(AbstractNativeSessionManager.java:100)
	org.apache.shiro.mgt.SessionsSecurityManager.getSession(SessionsSecurityManager.java:125)
	org.apache.shiro.mgt.DefaultSecurityManager.resolveContextSession(DefaultSecurityManager.java:456)
	org.apache.shiro.mgt.DefaultSecurityManager.resolveSession(DefaultSecurityManager.java:442)
	org.apache.shiro.mgt.DefaultSecurityManager.createSubject(DefaultSecurityManager.java:338)
	org.apache.shiro.subject.Subject$Builder.buildSubject(Subject.java:846)
	org.apache.shiro.web.subject.WebSubject$Builder.buildWebSubject(WebSubject.java:148)
	org.apache.shiro.web.servlet.AbstractShiroFilter.createSubject(AbstractShiroFilter.java:292)
	org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:359)
	org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.50 logs.



取消 提交回答
全部回答(1)
  • 爱吃鱼的程序员
    2020-06-02 11:35:43

    引用来自“魔神翼”的评论

    public int deleteSession(String sessionID)
      {
        return Db.update("DELETE FROM session WHERE sessionId=?", sessionID);
      }


    这个方法本来是要去调用 Db.update(String sql, Object.... paras) 的,但是 Db.update(String configName, String sql, Object... paras) 被匹配到了,建议你先 Db.update(sql, (Object) sessionID) 暂时处理一下,回头我将后面方法名改成  Db.pro.update(...) 这样就完全杜绝了此问题

    ######好的。JFinal社区支持真是快O(∩_∩)O######

    你使用了多数据源没有?  应该是你的  configName 找不到对应的 Config 对象

    ######应该是public static int update(String sql, Object... paras) 和public static int update(String configName, String sql, Object... paras)混淆了######贴出那段代码来######没有使用多数据源######

    public int deleteSession(String sessionID)
      {
        return Db.update("DELETE FROM session WHERE sessionId=?", sessionID);
      }



    ######

    此问题已经修复,可以去jfinal.com 官方网站下载最新版本了: http://jfinal.com ,注意,新的方案,对于多数据源来说 api 需要这样: Db.pro.find(...) , 即,所有多数据源操作 api 放在 Db.pro 下面了

    0 0
相关问答

18

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 1041965浏览量 回答数 18

162

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 226188浏览量 回答数 162

145

回答

【新手入门】云服务器linux使用手册

fanyue88888 2012-11-26 17:14:18 157721浏览量 回答数 145

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 337038浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 295586浏览量 回答数 110

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 147255浏览量 回答数 22

18

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 646821浏览量 回答数 18

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 259858浏览量 回答数 38

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192649浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 305654浏览量 回答数 249
+关注
爱吃鱼的程序员
https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
2
文章
21569
问答
问答排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载