Skip to content

cannot start in PROD mode when assigning port explicitly with ebean #457

Description

@wei-hai

Play Version (2.5.x / etc)

2.5.x

API (Scala / Java / Neither / Both)

Java

Operating System (Ubuntu 15.10 / MacOS 10.10 / Windows 10)

CentOS 7

JDK (Oracle 1.8.0_72, OpenJDK 1.8.x, Azul Zing)

openJDK 1.8.x

Library Dependencies

ebean

Expected Behavior

when I run:

applicationName/target/universal/stage/bin/applicationName -Dconfig.resource=production.conf -Dplay.evolutions.db.default.autoApply=true

The application works well.

However, when I run:

applicationName/target/universal/stage/bin/applicationName -Dhttp.port=9000 -Dconfig.resource=production.conf -Dplay.evolutions.db.default.autoApply=true

application cannot start.

Please describe the expected behavior of the issue, starting from the first action.

Actual Behavior

[error] c.a.ebean.Ebean - Error trying to create the default EbeanServer
java.lang.RuntimeException: DataSource user is null?
    at org.avaje.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:204)
    at org.avaje.datasource.Factory.createPool(Factory.java:12)
    at com.avaje.ebeaninternal.server.core.DefaultContainer.getDataSourceFromConfig(DefaultContainer.java:309)
    at com.avaje.ebeaninternal.server.core.DefaultContainer.setDataSource(DefaultContainer.java:262)
    at com.avaje.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:105)
    at com.avaje.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:77)
    at com.avaje.ebeaninternal.server.core.DefaultContainer.createServer(DefaultContainer.java:44)
    at com.avaje.ebean.EbeanServerFactory.create(EbeanServerFactory.java:55)
    at com.avaje.ebean.Ebean$ServerManager.getWithCreate(Ebean.java:201)
    at com.avaje.ebean.Ebean$ServerManager.<init>(Ebean.java:159)
Oops, cannot start the server.
com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Error injecting constructor, java.lang.NoClassDefFoundError: Could not initialize class com.avaje.ebean.Ebean
  at play.db.ebean.EbeanDynamicEvolutions.<init>(EbeanDynamicEvolutions.java:55)
  at play.db.ebean.EbeanDynamicEvolutions.class(EbeanDynamicEvolutions.java:44)
  while locating play.db.ebean.EbeanDynamicEvolutions
  at play.db.ebean.EbeanModule.bindings(EbeanModule.java:24):
Binding(class play.api.db.evolutions.DynamicEvolutions to ConstructionTarget(class play.db.ebean.EbeanDynamicEvolutions) eagerly) (via modules: com.google.inject.util.Modules$OverrideModule -> play.api.inject.guice.GuiceableModuleConversions$$anon$1)
  while locating play.api.db.evolutions.DynamicEvolutions
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.avaje.ebean.Ebean
    at com.avaje.ebean.EbeanServerFactory.create(EbeanServerFactory.java:73)
    at play.db.ebean.EbeanDynamicEvolutions.lambda$start$2(EbeanDynamicEvolutions.java:118)
    at java.util.HashMap.forEach(HashMap.java:1288)
    at play.db.ebean.EbeanDynamicEvolutions.start(EbeanDynamicEvolutions.java:114)
    at play.db.ebean.EbeanDynamicEvolutions.<init>(EbeanDynamicEvolutions.java:58)
    at play.db.ebean.EbeanDynamicEvolutions$$FastClassByGuice$$52c94231.newInstance(<generated>)
    at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
    at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:61)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:105)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:267)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:145)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:41)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:205)
    at com.google.inject.internal.InternalInjectorCreator$1.call(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:199)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:180)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:110)
    at com.google.inject.Guice.createInjector(Guice.java:96)
    at com.google.inject.Guice.createInjector(Guice.java:84)
    at play.api.inject.guice.GuiceBuilder.injector(GuiceInjectorBuilder.scala:181)
    at play.api.inject.guice.GuiceApplicationBuilder.build(GuiceApplicationBuilder.scala:123)
    at play.api.inject.guice.GuiceApplicationLoader.load(GuiceApplicationLoader.scala:21)
    at play.core.server.ProdServerStart$.start(ProdServerStart.scala:47)
    at play.core.server.ProdServerStart$.main(ProdServerStart.scala:22)
    at play.core.server.ProdServerStart.main(ProdServerStart.scala)

```[tasklist]
### Tasks

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions