New version of Play not working?

156 views
Skip to first unread message

Rob Guinness

unread,
Sep 16, 2016, 2:54:17 AM9/16/16
to Play Framework
I've just returned to Play after a long pause. I downloaded the newest version (2.5.8). I created a new application by running:

activator new my-first-app play-java

Then, I started it by running:

activator run

Everything looked fine, until I visited localhost:9000 in my browser. I get the following exception:

! @71dea7pik - Internal server error, for (GET) [/] ->
 
play.api.UnexpectedException: Unexpected exception[CreationException: Unable to create injector, see the following errors:

1) Error injecting constructor, java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
  at services.ApplicationTimer.<init>(ApplicationTimer.java:32)
  at Module.configure(Module.java:26) (via modules: com.google.inject.util.Modules$OverrideModule -> Module)
  while locating services.ApplicationTimer

1 error]
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:180)
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131)
        at scala.Option.map(Option.scala:146)
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131)
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:129)
        at scala.util.Success.flatMap(Try.scala:231)
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:129)
        at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:121)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
Caused by: com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Error injecting constructor, java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: java/
lang/invoke/StringConcatFactory
  at services
.ApplicationTimer.<init>(ApplicationTimer.java:32)
  at
Module.configure(Module.java:26) (via modules: com.google.inject.util.Modules$OverrideModule -> Module)
 
while locating services.ApplicationTimer

1 error
        at com
.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:466)
        at com
.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:184)
        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.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:168)
        at play
.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1$$anonfun$2.apply(DevServerStart.scala:164)
Caused by: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
        at services
.ApplicationTimer.<init>(ApplicationTimer.java:37)
        at services
.ApplicationTimer$$FastClassByGuice$$55d40385.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)
Caused by: java.lang.NoClassDefFoundError: java/lang/invoke/StringConcatFactory
        at services
.ApplicationTimer.<init>(ApplicationTimer.java:37)
        at services
.ApplicationTimer$$FastClassByGuice$$55d40385.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)
Caused by: java.lang.ClassNotFoundException: java.lang.invoke.StringConcatFactory
        at java
.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java
.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at java
.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at services
.ApplicationTimer.<init>(ApplicationTimer.java:37)
        at services
.ApplicationTimer$$FastClassByGuice$$55d40385.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)


I am using OpenJDK 8. From the Play website, it was not clear if the latest version supports OpenJDK. Here are the details:

$ java -version
openjdk version
"1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

Please advise.

-Rob

Christian Schmitt

unread,
Sep 16, 2016, 3:18:11 AM9/16/16
to Play Framework
StringConcatFactory isn't even a class in JDK8.

I also created a new play project, like you did and actually everything worked.












activator run


[info] Loading global plugins from /Users/schmitch/.sbt/0.13/plugins


[info] Updating {file:/Users/schmitch/.sbt/0.13/plugins/}global-plugins...


[info] Resolving org.scala-sbt.ivy#ivy;2.3.0-sbt-2cc8d2761242b072cedb0a04cb39435[info] Resolving org.fusesource.jansi#jansi;1.4 ...


[info] Done updating.


[info] Loading project definition from /Users/schmitch/projects/schmitch/play/play-java-bug-demo/project


[info] Updating {file:/Users/schmitch/projects/schmitch/play/play-java-bug-demo/project/}play-java-bug-demo-build...


[info] Resolving com.fasterxml.jackson.datatype#jackson-datatype-jsr310;2.5.4 ..[info] Resolving org.scala-sbt.ivy#ivy;2.3.0-sbt-2cc8d2761242b072cedb0a04cb39435[info] Resolving org.fusesource.jansi#jansi;1.4 ...


[info] Done updating.


[info] Set current project to play-java-bug-demmo (in build file:/Users/schmitch/projects/schmitch/play/play-java-bug-demo/)


[info] Updating {file:/Users/schmitch/projects/schmitch/play/play-java-bug-demo/}root...


[info] Resolving com.fasterxml.jackson.datatype#jackson-datatype-jsr310;2.7.6 ..[info] Resolving org.eclipse.jetty.websocket#websocket-client;9.2.15.v20160210 .[info] Resolving org.eclipse.jetty.websocket#websocket-common;9.2.15.v20160210 .[info] Resolving jline#jline;2.12.1 ...


[info] Done updating.




--- (Running the application, auto-reloading is enabled) ---




[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000




(Server started, use Ctrl+D to stop and go back to the console...)




[info] application - ApplicationTimer demo: Starting application at 2016-09-16T07:17:56.256Z


[info] play.api.Play - Application started (Dev)






Reply all
Reply to author
Forward
0 new messages