关于ActiveRecordPlugin的一个问题
@JFinal 你好,想跟你请教个问题:
我使用的是官网上的demo,然后在configPlugin中添加了AutoTableBindPlugin相关的内容。
完整的configPlugin代码如下:
/**
* 配置插件
*/
public void configPlugin(Plugins me) {
// 配置C3p0数据库连接池插件
C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("user"), getProperty("password").trim());
me.add(c3p0Plugin);
AutoTableBindPlugin atbp = new AutoTableBindPlugin(c3p0Plugin,SimpleNameStyles.UP_UNDERLINE);
atbp.setShowSql(true);
atbp.setDialect(new MysqlDialect());
me.add(atbp);
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
me.add(arp);
arp.addMapping("blog", Blog.class); // 映射blog 表到 Blog模型
}
jdk为1.8.0_20,tomcat为8.0.9,数据库为mysql。相关jar包如下:
在使用tomcat启动项目时遇到了如下错误:
严重: Exception starting filter jfinal
java.lang.RuntimeException: Plugin start error: com.jfinal.plugin.activerecord.ActiveRecordPlugin.
Config already exists: main
at com.jfinal.core.Config.startPlugins(Config.java:95)
at com.jfinal.core.Config.configJFinal(Config.java:48)
at com.jfinal.core.JFinal.init(JFinal.java:67)
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:4603)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5210)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: Config already exists: main
at com.jfinal.plugin.activerecord.DbKit.addConfig(DbKit.java:58)
at com.jfinal.plugin.activerecord.ActiveRecordPlugin.start(ActiveRecordPlugin.java:169)
at com.jfinal.core.Config.startPlugins(Config.java:85)
... 15 more
已经给跪了,,,这是为嘛么...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
大神 还在吗 我只创建一个插件,但是启动了还是这个问题,插件启动错误,请问下为什么吗
谢谢哈,这样改了之后,问题就解决了。
ActiveRecordPlugin 对象在创时如果不指定 configName 参数,则 configName默认值为 "main"。
楼主使用了两个 ActiveRecordPlugin,分别是AutoTableBindPlugin 与 ActiveRecordPlugin,所以第一个对象的 configName 默认为 "main" 以后,第二个就需要再取个名字,创建第二个的时候这样做即可: