1

I'm encountering this error when I followed play-scala template tutorial:

[error] play - Cannot invoke the action, eventually got an error: java.lang.RuntimeException: java.lang.NoSuchMethodError: scala.reflect.api.Types$TypeApi.members()Lscala/reflect/api/Scopes$ScopeApi;
[error] application - 

! @6jmiof8bp - Internal server error, for (POST) [/provision] ->

play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.NoSuchMethodError: scala.reflect.api.Types$TypeApi.members()Lscala/reflect/api/Scopes$ScopeApi;]]
    at play.api.Application$class.handleError(Application.scala:296) ~[play_2.11-2.3.4.jar:2.3.4]
    at play.api.DefaultApplication.handleError(Application.scala:402) [play_2.11-2.3.4.jar:2.3.4]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.4.jar:2.3.4]
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [play_2.11-2.3.4.jar:2.3.4]
    at scala.Option.map(Option.scala:145) [scala-library-2.11.1.jar:na]
Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodError: scala.reflect.api.Types$TypeApi.members()Lscala/reflect/api/Scopes$ScopeApi;
    at play.api.mvc.ActionBuilder$$anon$1.apply(Action.scala:523) ~[play_2.11-2.3.4.jar:2.3.4]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[play_2.11-2.3.4.jar:2.3.4]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[play_2.11-2.3.4.jar:2.3.4]
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[play_2.11-2.3.4.jar:2.3.4]
    at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129) ~[play_2.11-2.3.4.jar:2.3.4]
Caused by: java.lang.NoSuchMethodError: scala.reflect.api.Types$TypeApi.members()Lscala/reflect/api/Scopes$ScopeApi;
    at sorm.reflection.ScalaApi$TypeApi.members(ScalaApi.scala:11) ~[sorm-0.3.13.jar:na]
    at sorm.reflection.ScalaApi$TypeApi.properties(ScalaApi.scala:13) ~[sorm-0.3.13.jar:na]
    at sorm.reflection.Reflection.properties(Reflection.scala:31) ~[sorm-0.3.13.jar:na]
    at sorm.core.Initialization$.sorm$core$Initialization$$checkType$1(Initialization.scala:75) ~[sorm-0.3.13.jar:na]
    at sorm.core.Initialization$.recursiveEntities$1(Initialization.scala:79) ~[sorm-0.3.13.jar:na]

I encounter this error when I added this line DB.save(person) on my provision method Application.scala

My DB Object looks like this:

object MemDB extends Instance(entities = Seq(Entity[Person]()), url ="jdbc:h2:mem:play") {}

I also removed the comments on my application.conf file

 db.default.driver=org.h2.Driver
 db.default.url="jdbc:h2:mem:play"

I can't figure out how to fix this error. I just followed the video tutorial in the playframework websito for play framework and scala. I also tried changing the url to jdbc:h2:mem:test just like what the tutorial suggest. I am using the following versions

addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.4")
libraryDependencies += "org.sorm-framework" % "sorm" % "0.3.13"
libraryDependencies += "com.h2database" % "h2" % "1.4.181"
scalaVersion := "2.11.1"
Frank Smith
  • 1,717
  • 4
  • 18
  • 32
  • 2
    Maybe this is a duplicate of [Using SORM with Play Framework causes reflection exceptions to be thrown](http://stackoverflow.com/questions/16925870) (incompatible Scala dependencies) – Thomas Mueller Oct 06 '14 at 10:04

1 Answers1

0

SORM is only compatible with the version 2.1 of Play at the time. Your problems must be caused by this.

Here's a related ticket.

Nikita Volkov
  • 42,792
  • 11
  • 94
  • 169
  • 2
    Thanks. I managed to make it work by just specifying scalaVersion in my build.sbt with the scala dependency version of the sorm I used. I used scalaVersion 2.10.3 and sorm 0.3.15. It seems like play version doesn't affect it as I am using Play 2.3.4. – Frank Smith Oct 07 '14 at 06:32