actframework / act-ebean

The ebean plugin that uses latest ebeanorm and requrie java 8 support
Apache License 2.0
2 stars 1 forks source link

Todo-Ebean sample project start failure on JDK 15 #35

Open greenlaw110 opened 3 years ago

greenlaw110 commented 3 years ago

Error stack:

Caused by: io.ebean.config.BeanNotEnhancedException: Bean class demo.todo.ebean.TodoItem is not enhanced? Check packages specified in ebean.mf. If you are running in IDEA or Eclipse check that the enhancement plugin is installed. See https://ebean.io/docs/trouble-shooting#not-enhanced
    at io.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1580)
    at io.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1445)
    at io.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1354)
    at io.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:770)
    at io.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:374)
    at io.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:198)
    at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:124)
    at io.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:35)
    at io.ebean.EbeanServerFactory.createInternal(EbeanServerFactory.java:109)
    at io.ebean.EbeanServerFactory.create(EbeanServerFactory.java:70)
    at act.db.ebean.EbeanService.dataSourceProvided(EbeanService.java:118)
    at act.db.sql.SqlDbService.doInitDataSource(SqlDbService.java:275)
    at act.db.sql.SqlDbService.initDataSource(SqlDbService.java:257)
    at act.db.sql.SqlDbService.init(SqlDbService.java:118)

The issue does not happen on JDK8

greenlaw110 commented 3 years ago

The problem is in the act.db.ebean.EbeanAgentLoader.loadAgentFromClasspath(...) method. It assume it can find an instance of URLClassLoader, but it is not true when app is running on JDK9+.