准备给猥琐同学写个图片抓取的程序, 其实也完成了, 现在是想展示,就想到了我们的java-web第一的JFinal ,但有点点问题啦,听我慢慢道来:
sqlite数据库如下:
jfinal如下配置 就是报错,过不去, 不知道怎么回事了, 帮忙看看吧,
public class WebApp extends JFinalConfig { public void configPlugin( Plugins me ) { Prop p = PropKit.use( _CONFIG_ ); C3p0Plugin c3p0 = new C3p0Plugin( p.get( "jdbcUrl" ).trim() , p.get( "user" ) , p.get( "password" ) , "org.sqlite.JDBC" ); ActiveRecordPlugin arp = new ActiveRecordPlugin( "sqlite" , c3p0 ); arp.setShowSql( p.getBoolean( "devMode" , false ) ); arp.setDialect( new Sqlite3Dialect() ); __MappingKit.mapping( arp ); me.add( c3p0 ); me.add( arp ); } }
controller就一句话:
public class JandanController extends Controller { public void index() { List<Meizi> l = Meizi.dao.find( "select * from meizi" ); setAttr( "meizi" , l ); } }
启动后访问页面就有很多错误了,难道是sqlite不对么?
随便修改下代码,jetty重新加载下,打印了以下日志,再开页面就好了,真神奇啊
肯定不存在调用过早的情况啦?
我简单调试过,启动时 DbKit.modelToConfig在TableBuilder.build()时,填充的有数据,
执行index()里的find()时 DbKit. modelToConfig是空的,导致 nullpointer,
jetty重新加载后 DbKit. modelToConfig被填充,是正确的
再 执行index()里的find()时 DbKit. modelToConfig就是有数据的了,就正常了.
周末花了点时间把这个问题解决了,虽然最终也没从根本上弄懂是怎么回事,只是简单的解决了;
说起来也算是我自己矫情吧,弄了 一个web工程运行,一个java工程生成jfinal代码且被web工程依赖,就会出现正文描述的现象,合成一个eclipise工程就ok了,啥事没有.
我感觉还是工程依赖后web运行前class加载的顺序问题导致的,不是特别明白.
我用的my eclipise6.5,JDK6,算是比较老的了.
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。