When use `@Inject` the dao,will cause NullPointerException · Issue #21 · actframework/act-ebean-java7 · GitHub
Skip to content

When use @Inject the dao,will cause NullPointerException #21

Open

Description

@flyingbeecd

my maven project is was splited into two module:one is start which include service、controller etc。the other is about db info which defines Entity with tables。

when project started ,we will get following Error messeges:,but if everyting include in only one module, will be fine.

2019-03-14 10:34:35,895 INFO  a.a.ApiManager@[jobs-thread-4] - start compiling API book
2019-03-14 10:34:36,259 WARN  a.a.ApiManager@[jobs-thread-4] - error generating sample data for type: interface java.util.List
2019-03-14 10:34:36,391 WARN  a.j.Job@[jobs-thread-4] - error executing job compile-api-book
java.lang.NullPointerException: null
	at act.db.ebean.EbeanDao.setEbean(EbeanDao.java:126)
	at act.db.ebean.EbeanDao.ebean(EbeanDao.java:81)
	at act.db.ebean.EbeanDao.dbService(EbeanDao.java:87)
	at act.db.ebean.EbeanDao.<init>(EbeanDao.java:66)
	at act.db.ebean.EbeanService.defaultDao(EbeanService.java:156)
	at act.app.DbServiceManager.dao(DbServiceManager.java:178)
	at act.db.ebean.util.EbeanDaoLoader.load(EbeanDaoLoader.java:47)
	at act.db.ebean.util.EbeanDaoLoader.load(EbeanDaoLoader.java:33)
	at org.osgl.inject.Genie$7.get(Genie.java:945)
	at org.osgl.inject.Genie$8.get(Genie.java:987)
	at org.osgl.inject.Genie$FieldInjector.applyTo(Genie.java:467)
	at org.osgl.inject.Genie$10.get(Genie.java:1040)
	at org.osgl.inject.Genie$8.get(Genie.java:987)
	at org.osgl.inject.Genie.get(Genie.java:570)
	at org.osgl.inject.provider.LazyProvider.get(LazyProvider.java:45)
	at org.osgl.inject.Genie$8.get(Genie.java:987)
	at org.osgl.inject.Genie$WeightedProvider.get(Genie.java:443)
	at org.osgl.inject.Genie$FieldInjector.applyTo(Genie.java:467)
	at org.osgl.inject.Genie$10.get(Genie.java:1040)
	at org.osgl.inject.Genie$8.get(Genie.java:987)
	at org.osgl.inject.Genie.get(Genie.java:570)
	at act.inject.genie.GenieInjector.get(GenieInjector.java:76)
	at act.app.App.getInstance(App.java:1118)
	at act.util.ReflectedInvokerHelper.tryGetSingleton(ReflectedInvokerHelper.java:60)
	at act.handler.builtin.controller.impl.ReflectedHandlerInvoker.<init>(ReflectedHandlerInvoker.java:354)
	at act.handler.builtin.controller.impl.ReflectedHandlerInvoker.createControllerAction(ReflectedHandlerInvoker.java:1177)
	at act.Act$Mode.createRequestHandler(Act.java:150)
	at act.handler.builtin.controller.RequestHandlerProxy.generateHandlers(RequestHandlerProxy.java:425)
	at act.handler.builtin.controller.RequestHandlerProxy.ensureAgentsReady(RequestHandlerProxy.java:349)
	at act.handler.builtin.controller.RequestHandlerProxy.actionHandler(RequestHandlerProxy.java:176)
	at act.apidoc.Endpoint.explore(Endpoint.java:323)
	at act.apidoc.Endpoint.<init>(Endpoint.java:222)
	at act.apidoc.ApiManager$4.visit(ApiManager.java:193)
	at act.route.Router.visit(Router.java:225)
	at act.route.Router.visit(Router.java:228)
	at act.route.Router.visit(Router.java:228)
	at act.route.Router.accept(Router.java:184)
	at act.apidoc.ApiManager.load(ApiManager.java:188)
	at act.apidoc.ApiManager.load(ApiManager.java:133)
	at act.apidoc.ApiManager$1.run(ApiManager.java:94)
	at act.job.Job$4.apply(Job.java:442)
	at act.job.Job.doJob(Job.java:403)
	at act.job.Job.run(Job.java:338)
	at act.job.Job$LockableJobList.runSubJobs(Job.java:112)
	at act.job.Job$LockableJobList.runSubJobs(Job.java:93)
	at act.job.Job.runFollowingJobs(Job.java:423)
	at act.job.Job.run(Job.java:392)
	at act.job.JobManager$_SysEventListener.on(JobManager.java:477)
	at act.event.EventBus.callOn(EventBus.java:1354)
	at act.event.EventBus.callOn(EventBus.java:1376)
	at act.event.EventBus.callOn(EventBus.java:1406)
	at act.event.EventBus._emit(EventBus.java:1267)
	at act.event.EventBus.emit(EventBus.java:723)
	at act.app.App.emit(App.java:1282)
	at act.app.App$5.run(App.java:822)
	at act.job.Job$4.apply(Job.java:442)
	at act.job.Job.doJob(Job.java:403)
	at act.job.Job.run(Job.java:338)
	at act.job.Job$LockableJobList.runSubJobs(Job.java:112)
	at act.job.Job$LockableJobList.runSubJobs(Job.java:93)
	at act.job.Job.runPrecedenceJobs(Job.java:419)
	at act.job.Job.run(Job.java:330)
	at act.job.JobManager$_SysEventListener.on(JobManager.java:477)
	at act.event.EventBus.callOn(EventBus.java:1354)
	at act.event.EventBus.callOn(EventBus.java:1376)
	at act.event.EventBus.callOn(EventBus.java:1406)
	at act.event.EventBus._emit(EventBus.java:1267)
	at act.event.EventBus.emit(EventBus.java:723)
	at act.app.App.emit(App.java:1282)
	at act.app.DbServiceManager$1.run(DbServiceManager.java:77)
	at act.app.DbServiceManager$3.on(DbServiceManager.java:132)
	at act.app.DbServiceManager$3.on(DbServiceManager.java:126)
	at act.event.EventBus.callOn(EventBus.java:1354)
	at act.event.EventBus.callOn(EventBus.java:1376)
	at act.event.EventBus.callOn(EventBus.java:1411)
	at act.event.EventBus._emitWithOnceBus(EventBus.java:1327)
	at act.event.EventBus.emit(EventBus.java:891)
	at act.db.sql.SqlDbService$4.run(SqlDbService.java:142)
	at act.job.Job$4.apply(Job.java:442)
	at act.job.Job.doJob(Job.java:403)
	at act.job.Job.run(Job.java:338)
	at act.job.Job$LockableJobList.runSubJobs(Job.java:112)
	at act.job.Job$LockableJobList.runSubJobs(Job.java:93)
	at act.job.Job.runFollowingJobs(Job.java:423)
	at act.job.Job.run(Job.java:392)
	at act.job.JobManager$_SysEventListener.on(JobManager.java:477)
	at act.event.EventBus.callOn(EventBus.java:1354)
	at act.event.EventBus.callOn(EventBus.java:1376)
	at act.event.EventBus.callOn(EventBus.java:1406)
	at act.event.EventBus._emit(EventBus.java:1267)
	at act.event.EventBus.emit(EventBus.java:723)
	at act.app.App.emit(App.java:1282)
	at act.app.App$4.run(App.java:797)
	at act.job.JobManager$ContextualJob$1.apply(JobManager.java:529)
	at act.job.Job.doJob(Job.java:403)
	at act.job.Job.run(Job.java:338)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Activity

  1. leeaee commented on Mar 25, 2019

    @leeaee

    As I known, this issue may cause by the multiple module structure of maven project. And this issue will only appear when running in IDEA, because build release will load all jars when startup.

    When you running in IDEA, you need to add mutiple module setting in act app.properties like this:

    base=../../modules
    modules=${base}/core;${base}/domain;${base}/data

    You can add configuration of your db and entity and try again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions