开发者社区> 问答> 正文

jfinal web项目发布到tomcat报错? 400 报错

jfinal web项目发布到tomcat报错? 400 报错

java.lang.NullPointerException at com.jfinal.plugin.activerecord.Model.find(Model.java:583) at com.jfinal.plugin.activerecord.Model.findFirst(Model.java:601)

如题,使用JFinal开发的web项目,在本地IDEA环境运行正常,发布到tomcat中报上述错误,调用Model.findFirst()方法抛的异常,(3.2版本)debug进入 DbKit.getConfig()方法中发现modelToConfig为空,但是在本地执行是有数据的,JFinal社区有很多遇到同样的问题,未找到解决方案,求大神指教!对应代码

ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
arp.setShowSql(Const.DEV_MODE);
loadMapper().forEach(mapper -> arp.addMapping(mapper.getTableName(), mapper.getPrimaryKey(), mapper.getModelClazz()));
me.add(arp);

private List<Mapper> loadMapper() {
    Set<Class<?>> classSet = new DefaultScanner().loadClassBySupper("top.wugy.blog.model", IBean.class);
    return classSet.stream().map(Mapper::toMapper).collect(Collectors.toList());
}

@JFinal

展开
收起
爱吃鱼的程序员 2020-06-01 13:49:42 531 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    很可能是配置问题,造成数据库未正确连接

    ######

    引用来自“JFinal”的评论

    很可能是配置问题,造成数据库未正确连接

    public class TUser extends Model<TUser> implements IBean {
    
        //省略属性setter/getter方法
    
        public TUser findByUsername(String username) {
            return findFirst(String.format("select * from %s where username = ?", Const.TABLE_USER), username);
        }
    
    }
    

    上面是我的代码,哪里配置问题?其它地方查询都没问题。

    @JFinal

    ######

    引用来自“devotion”的评论

    引用来自“JFinal”的评论

    很可能是配置问题,造成数据库未正确连接

    public class TUser extends Model<TUser> implements IBean {
    
        //省略属性setter/getter方法
    
        public TUser findByUsername(String username) {
            return findFirst(String.format("select * from %s where username = ?", Const.TABLE_USER), username);
        }
    
    }
    

    上面是我的代码,哪里配置问题?其它地方查询都没问题。

    @JFinal

    都说了是数据库连接配置哪块,你还贴个查询的方法上来,这叫大神怎么帮你解决问题所在,还是去看几遍JFinal手册吧

    ######

    引用来自“devotion”的评论

    引用来自“JFinal”的评论

    很可能是配置问题,造成数据库未正确连接

    public class TUser extends Model<TUser> implements IBean {
    
        //省略属性setter/getter方法
    
        public TUser findByUsername(String username) {
            return findFirst(String.format("select * from %s where username = ?", Const.TABLE_USER), username);
        }
    
    }
    

    上面是我的代码,哪里配置问题?其它地方查询都没问题。

    @JFinal

    引用来自“zlsj80”的评论

    都说了是数据库连接配置哪块,你还贴个查询的方法上来,这叫大神怎么帮你解决问题所在,还是去看几遍JFinal手册吧

    有些地方查询使用的是Db.find(),这里用的Model.findFirst报错了,这是数据库配置的问题吗?

    DruidPlugin dp = new DruidPlugin(Const.DB_URL, Const.DB_USERNAME,
            Const.DB_PWD);
    WallFilter wallFilter = new WallFilter();
    wallFilter.setDbType(JdbcUtils.MYSQL);
    dp.addFilter(wallFilter);
    me.add(dp);
    
    ActiveRecordPlugin arp = new ActiveRecordPlugin(dp);
    arp.setShowSql(Const.DEV_MODE);
    loadMapper().forEach(mapper -> arp.addMapping(mapper.getTableName(), mapper.getPrimaryKey(), mapper.getModelClazz()));
    me.add(arp);

     

    2020-06-01 13:49:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Web应用系统性能优化 立即下载
高性能Web架构之缓存体系 立即下载
PWA:移动Web的现在与未来 立即下载