启动时候报错Config already exists: main

小米_1993 发布于 2015/01/16 17:31
阅读 1K+
收藏 2

@JFinal 你好,想跟你请教个问题:用tomcat启动JFinal时候报错INFO - {dataSource-1} inited
ERROR - Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin. 
Config already exists: main
java.lang.IllegalArgumentException: Config already exists: main

这怎么解决呀?没看懂配置已存在是什么意思。还有在用jetty启动的时候报错 WARN - FAILED jfinal: java.lang.RuntimeException: Can not create instance of class: com.hyc.emp.common.Config. Please check the config in web.xml
java.lang.RuntimeException: Can not create instance of class: com.hyc.emp.common.Config. Please check the config in web.xml

 WARN - Failed startup of context o.e.j.w.WebAppContext{/emp,file:/E:/IDEA%20workSpace/GraduateEmploymentManagementSystem/web/}
java.lang.RuntimeException: Can not create instance of class: com.hyc.emp.common.Config. Please check the config in web.xml
这个我是用JFinal.start("web", 8080, "/", 5)这种方式启动的,好像是路径不对,,看了点源码还是没看懂。不要嫌我笨啊,新手刚开始用,求教了,谢谢。。

加载中
0
JFinal
JFinal

可能有两个错误:

1:创建web项目时在填写 Default output folder 时需要填写:/WEB-INF/classes,这个在 jfinal 手册第一章有详细的截图与说明

2:创建多个 ActiveRecordPlugin 时需要为 ActiveRecordPluin 指定一个 configName 参数,最多允许一个 ActiveRecordPlugin 不用指定这个参数,不指定时则默认值为:"main",这个参数必须是唯一的,所以当你有多个 ActiveRecordPlugin 都未指定 configName时,为了保证唯一性必定就报错了

JFinal
JFinal
回复 @阿斯蓝 : 没错,在同一个进程中,configName 需要是唯一的,只是起个名字用来区分而已。
阿斯蓝
阿斯蓝
这意思是不是说在一个进程中(或者叫appdomain?还是该怎么解释这个概念我也不太确定)是不允许configName相同的ActiveRecordPlugin存在的?
小米_1993
小米_1993
还有就是不知道怎么回事在我的编译器中看JFinal的源码有好多地方都是红色的说不认识这些方法变量的,我用的intelj IDEA。。
0
小米_1993
小米_1993

引用来自“JFinal”的评论

可能有两个错误:

1:创建web项目时在填写 Default output folder 时需要填写:/WEB-INF/classes,这个在 jfinal 手册第一章有详细的截图与说明

2:创建多个 ActiveRecordPlugin 时需要为 ActiveRecordPluin 指定一个 configName 参数,最多允许一个 ActiveRecordPlugin 不用指定这个参数,不指定时则默认值为:"main",这个参数必须是唯一的,所以当你有多个 ActiveRecordPlugin 都未指定 configName时,为了保证唯一性必定就报错了

@JFinal  谢谢了。好像是我只要添加了AutoTableBindPlugin插件就会报错呀:org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter jfinal我添加的插件代码:C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password").trim());
me.add(c3p0Plugin);
ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
arp.setShowSql(true);
Dialect dialect = new MysqlDialect();
arp.setDialect(dialect);
arp.addMapping("admin","AdminID", AdminModel.class);
AutoTableBindPlugin atbp = new AutoTableBindPlugin(c3p0Plugin);
atbp.setShowSql(true);
atbp.setDialect(dialect);
atbp.autoScan(false);
me.add(atbp);
// sql记录
SqlReporter.setLogger(true);
me.add(arp);
哪里不对呀?把AutoTableBindPlugin插件去掉程序就能跑起来了,,很郁闷。。
0
阿斯蓝
阿斯蓝

引用来自“JFinal”的评论

可能有两个错误:

1:创建web项目时在填写 Default output folder 时需要填写:/WEB-INF/classes,这个在 jfinal 手册第一章有详细的截图与说明

2:创建多个 ActiveRecordPlugin 时需要为 ActiveRecordPluin 指定一个 configName 参数,最多允许一个 ActiveRecordPlugin 不用指定这个参数,不指定时则默认值为:"main",这个参数必须是唯一的,所以当你有多个 ActiveRecordPlugin 都未指定 configName时,为了保证唯一性必定就报错了

紧急求助!请问你知道在什么情况c3p0插件会报“APPARENT DEADLOCK”错误吗?是这样的,我的一个TestNG测试项目A引用了另一个项目B,B中使用非servlet环境中的方式初始化了c3p0插件和ActiveRecordPlugin,当A中的代码调用到B、acquire connection的时候就报死锁。注:我没有调用c3p0和ActiveRecordPlugin的stop方法,这样会有问题吗?
阿斯蓝
阿斯蓝
回复 @JFinal : 谢谢波总。我去试试。
JFinal
JFinal
C3p0 偶尔会发现这个问题,可能是有连接长时间在使用未释放造成的,建议换成 DruidPlugin
返回顶部
顶部