在项目中需要链接多个数据库,而在配置 etmvc 框架的时候遇到了问题,我判断是 获取不到 Connection 链接,有知道的朋友请帮忙留言解决下问题,不甚感激!
我项目中 activerecord.properties 文件配置(这是配置多个数据源)domain_base_class=models.Base1 models.Base2models.Base1.driver_class=com.mysql.jdbc.Driver
models.Base1.url=jdbc:mysql://localhost:3306/QXDemo
models.Base1.username=root
models.Base1.password=
models.Base1.pool_size=10models.Base2.driver_class=com.mysql.jdbc.Driver
models.Base2.url=jdbc:mysql://localhost:3306/pay
models.Base2.username=root
models.Base2.password=
models.Base2.pool_size=10如果只配置一个数据源的话,这样子是可以成功的domain_base_class=com.et.ar.ActiveRecordBasecom.et.ar.ActiveRecordBase.driver_class=com.mysql.jdbc.Driver
com.et.ar.ActiveRecordBase.url=jdbc:mysql://localhost:3306/pay
com.et.ar.ActiveRecordBase.username=root
com.et.ar.ActiveRecordBase.password=
com.et.ar.ActiveRecordBase.pool_size=10其他的配置和它官方配置一样建立了2个 类,Base1,Base2  这两个类继承  ActiveRecordBase ,然后让其他 业务模型继承 Base1,Base2 在Action方法调用 业务模型方法名的时候,出现 空指针异常。
java.lang.NullPointerException
at com.et.ar.ConnectionHolder.<init>(ConnectionHolder.java:26)
at com.et.ar.ActiveRecordBase.findBySql(ActiveRecordBase.java:609)
at com.et.ar.ActiveRecordBase.findAll(ActiveRecordBase.java:528)
at com.et.ar.ActiveRecordBase.findAll(ActiveRecordBase.java:453)
at cn.yeahka.controllers.RolesController.list(RolesController.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.et.mvc.Controller.invoke(Controller.java:152)
at com.et.mvc.Dispatcher.service(Dispatcher.java:123)
at com.et.mvc.DispatcherFilter.doFilter(DispatcherFilter.java:251)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    自己解决了,需要加上Java类文件全路径,配置成domain_base_class=cn.models.Base1 cn.models.Base2cn.models.Base1.driver_class=com.mysql.jdbc.Driver
    cn.models.Base1.url=jdbc:mysql://localhost:3306/QXDemo
    cn.models.Base1.username=root
    cn.models.Base1.password=
    cn.models.Base1.pool_size=10cn.models.Base2.driver_class=com.mysql.jdbc.Driver
    cn.models.Base2.url=jdbc:mysql://localhost:3306/pay
    cn.models.Base2.username=root
    cn.models.Base2.password=
    cn.models.Base2.pool_size=10