关于ActiveRecordPlugin的一个问题

发布于 2021-11-27 10:58:04 字数 3122 浏览 867 评论 3


@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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

因为看清所以看轻 2021-12-01 09:44:57

大神 还在吗 我只创建一个插件,但是启动了还是这个问题,插件启动错误,请问下为什么吗

瑾兮 2021-12-01 06:16:54

谢谢哈,这样改了之后,问题就解决了。

囚你心 2021-12-01 00:21:23

   ActiveRecordPlugin 对象在创时如果不指定 configName 参数,则 configName默认值为 "main"。

    楼主使用了两个 ActiveRecordPlugin,分别是AutoTableBindPlugin 与 ActiveRecordPlugin,所以第一个对象的 configName 默认为 "main" 以后,第二个就需要再取个名字,创建第二个的时候这样做即可:

ActiveRecordPlugin arp = new ActiveRecordPlugin("otherConfig", c3p0Plugin);

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文