playframework2.1迁移2.2

我是从2.1.5版本迁移到2.2.3版本

1.plugins.sbt中

addSbtPlugin(“play” % “sbt-plugin” % “2.1.5”)

改为

addSbtPlugin(“com.typesafe.play” % “sbt-plugin” % “2.2.3”)

2.build.properties中

sbt.version=0.12.2

改为

sbt.version=0.13.0

3.Build.scala ApplicationBuild中

假如你在项目中使用了playcache,则

val appDependencies = Seq(
cache,
  )

4.Jackson Json

新版本中的json的包变化了位置

import org.codehaus.jackson.JsonNode;

改为(我用了外部的json包–fastJson)

import com.fasterxml.jackson.databind.JsonNode;

5.maven

相应的控件版本也要进行改变(一般是没有什么问题的,除非是对应特定版本play框架的控件)

6.F.Promise 与 simpleResult

有些地方的返回类型play.mvc.Result 变为 play.libs.F.Promise

由于新版中开始使用simpleResult这个返回结果,不是以前的Result,所以一些地方需要进行修改,例如:

@With进行controller验证,由于继承了Action.Simple类,返回的必须是simpleResult

Global文件中,继承了GlobalSettings类,onHandlerNotFound函数返回类型修改了

注意

  1. 需要对项目进行清理,比如冲突的lib包(可能存在两个版本的包)
  2. play clean
  3. 删除target文件夹
  4. 根据控制台输出的错误信息一条一条的进行修改即可

bug

问题:Uncaught error from thread [play-akka.actor.default-dispatcher-5] shutting down JVM since ‘akka.jvm-exit-on-fatal-error’ is enabled for ActorSystem[play] java.lang.VerifyError: Stack map does not match the one at exception handler 219

解决:plugins.sbt中添加 libraryDependencies += “org.javassist” % “javassist” % “3.18.2-GA”

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页