关于ActiveRecordPlugin的一个问题

SaddestMoon 发布于 2014/08/26 22:33
阅读 4K+
收藏 0


@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

已经给跪了,,,这是为嘛么...

 

 

 

加载中
0
JFinal
JFinal

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

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

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




SaddestMoon
SaddestMoon
谢谢哈,这样改了之后,问题就解决了。
0
从业十余年
大神 还在吗 我只创建一个插件,但是启动了还是这个问题,插件启动错误,请问下为什么吗
返回顶部
顶部