开发者社区 问答 正文

JFial 在非web程序里使用,调用ActiveRecordPlugin的st?报错

//连接平台的数据库 

dpA = new DruidPlugin("jdbc:oracle:thin:@172.16.96.128:1521:orcl","info_platform", "info_platform");

dpA.setDriverClass("oracle.jdbc.driver.OracleDriver");

dpA.setValidationQuery("select 1 FROM DUAL");

b = dpA.start();

if(!b) return b;

arpA = new ActiveRecordPlugin("A", dpA);

arpA.setDialect(new OracleDialect());

//设置大小写不敏感

arpA.setContainerFactory(new CaseInsensitiveContainerFactory());

b = arpA.start();

调用上面那个start的时候,在debug模式下,会报异常。但在run模式下不报错,并且能正常查询数据库。

但这样的话,我就没法debug程序了。

以上使用是jfinal2.0,并且是在非web应用上使用。

展开
收起
爱吃鱼的程序员 2020-06-10 10:53:21 727 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    引用来自“会哭的鳄鱼”的评论

    麻烦你帮忙看看行不?谢谢了!我今天把Jfinal的源码拿出来放到的项目里进行单步跟踪,发现到了TableBuild方法里有一个config.getsource.getconnection这个方法就出错了,后面再没法跟进去了。我换了c3p0接连,也是一样的状况。你看看我又发的图片,都觉得好奇怪的。我是在mycelipse2015上做得。我用try{JbServer.arpJB.start();}catch(Exceptione){System.out.println(e.getMessage());}都捕捉不到错误,就是一debug,就断掉后,报错,进行不下去了。回复 @会哭的鳄鱼:截图中的异常提示为ArrayIndexOutOfBoundException,数组下标越界了,仔细检查一下代码有没有用到数组的地方,或者用的服务器JbServer有无越界关键是不出异常信息,就在执行start后,就出不来了。eclipse上只显示我贴的那个图的信息。就是debug的时候会出这个问题,如果直接run,就没问题,也能连上数据库,也能使用。为什么会这样啊。  具体报什么异常,这个问题很好解决,本质上来说ActiveRecordPlugin是否在web下使用都是一样的,因为他完全不依赖于web,唯一的不同点是jfinal框架会主动调用其 start()与stop()方法。debug模式难道依赖了log组件lib你没配置吗?是不是相应的log的jar包我没加进去?

    我把log4j的jar也加进去了。debug的时候,还是异常,就是执行start方法导致的。麻烦各位高手给看看。

    麻烦你帮忙看看行不?谢谢了!

    关键就是不报错,我用

    try{

    JbServer.arpJB.start();

    }catch(Exceptione){

    System.out.println(e.getMessage());

    }

    都捕捉不到错误。但就是一debug,就中断,然后就走不下去了。问题是,如果是直接run,是不会出错得。

    最后把这个问题总结一下,我当时用的是myeclipse2015的测试版,就出了那个问题了,后来换回myeclipse6,就没问题了,现在使用myeclipse2014,也没问题的。特在此总结一下,后来人希望引以为戒。

    2020-06-10 10:53:39
    赞同 展开评论