Typically: for Scala, use Play. For Java, use a jersey.
You can use Jersey / Scala and Play / Java; I did both. It works. It's not bad. But if you have no particular reason for this, I would not mix ecosystems. Java and Scala are interoperable, but they have different ecosystems, I would avoid adding Java isms if you use Scala or Scala -isms and dependencies if you use direct Java.
Jersey and Game are usually close to REST services. None of them have any killer functions over the other.
Jersey defines URL mappings in annotations; Play defines them in a service route file. And they combine or have a different integration quality with different libraries for things like XML, JSON, database, testing, bullying, dependency injection libraries and application server deployment.
In the Java world there are JMS, Spring, JUnit, jdbi / hibernate / jpa, Jetty / Grizzly. In the Scala world there is Akka, specs2 / ScalaTest, Anorm / slick. Jersey is better for the first world, Scala for the second. You can definitely cross over with this, but it will be a little less elegant and may require more glue coding.
user2684301
source share