资讯专栏INFORMATION COLUMN

Play Framework升级到2.6.x的填坑记录

voidking / 929人阅读

摘要:为了使用最新的,升级到配置修改根据官网的升级指南,修改文件,更改插件版本号文件中,把和多带带加入。此文件为首页的模板。推测可能是版本和版本的首页模板不同,于是到官网下载版本的,找到并覆盖项目的相应文件。添加插件的语句至此,升级成功完成。

为了使用最新的Play WS Api,升级到play 2.6.21

1.配置修改

根据官网的升级指南,修改plugins.sbt文件,更改插件版本号:addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.21")

build.sbt文件中,把guice和play-json多带带加入。

libraryDependencies += guice

libraryDependencies += "com.typesafe.play" %% "play-json" % "2.6.0"

build.sbt中修改依赖库cache和JavaWs的名字为ehcache和ws。修改后如下

libraryDependencies ++= Seq( javaJdbc ,  ehcache , ws)

然后点击菜单View/Tool windwos/SBT打开sbt窗口,点击刷新,然后下载新的依赖包,虽然消耗不少时间,最终顺利完成,没有遇到太大麻烦。

2.运行

修改完配置之后,运行play(使用 sbt run命令)。提示 viewsindex.scala.html:18: not found: value welcome。此文件为首页的Twirl模板。

推测可能是2.6版本和2.5版本的首页模板不同,于是到官网下载2.6版本的starter-example,找到views/index.scala.html并覆盖项目的相应文件。再次运行,还是提示同样错误。

这个错误的原因是views.html包下没有welcome对象,views.html.play20包下也没有,据说是因为低版本的play下载了某个低版本依赖包,导致高版本play不再下载新版本的依赖包导致。此问题无法解决,因为这个欢迎页面可有可无,因此最终决定从views/index.scala.html中删除@welcome的调用。编译通过,开发模式下运行没有问题。

3.生产环境部署

和上一版本一样,命令行上 运行sbt dist或者sbt universal:packageBin打包项目为zip文件。复制到服务器上,解压zip文件,运行/bin/xxxx.bat启动web服务器,出现“输入行太长”的错误无法启动web服务器。

直接原因是java -cp "..." 命令太长,超过windows命令行8000字节的限制,导致windows无法执行此命令。这个命令长的部分是 -cp后面指定的jar包文件,因为依赖的jar包太多,sbt把jar文件名全部串接起来放在cp后面,导致这个参数非常长。上一版本还勉强没超过限制,升级到新版本后,依赖包又增加了很多个,导致命令长度超限制。

“输入行太长”错误的一般解决方法是,把bat文件所在路径的基础路径名尽可能缩短,把bat的上两级目录的文件夹名缩短到2个字符,再运行bat文件,这时不再报“输入行太长”错误,但出现新错误“无法找到或者加载主类play.core.server.ProdServerStart”的错误。

一开始怀疑是javac选项或者jdk版本导致的,用了很长时间排查仍然无法解决问题,在stackoverflow上找到的方法也不成功。偶然想到,这个错误是不是也是因为命令长度太长导致的,于是在stackoverflow上找到一个彻底解决命令太长的方法。在build.sbt文件中添加插件LauncherJarPlugin,本来不抱太大希望,想不到运行sbt start竟然成功了,然后打包部署也成功了。添加插件LauncherJarPlugin的语句:

lazy val `xxxx` = (project in file(".")).enablePlugins(PlayJava,LauncherJarPlugin)

至此,play framework2.6.21升级成功完成。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73787.html

相关文章

  • 基于 LNMP 搭建个人网站填坑之旅

    摘要:博客搬家原地址原发表时间本文讨论使用安装包构建网站底层服务后,包括域名解析,的管理等的一系列填坑历程。域名解析问题相关首先将本人的网站信息公布如下域名地址主机提供方搬瓦工域名托管及解析阿里云万网本文之后的内容均是基于以上信息。 「博客搬家」 原地址: CSDN 原发表时间: 2016-11-16 本文讨论使用 LNMP 安装包构建网站底层服务后,包括域名解析,MySQL 的管理等...

    B0B0 评论0 收藏0
  • 使用 vue2.0 开发微信公众号下前后端分离的SPA站点填坑之旅

    摘要:目前正在写一个微信公众号的小项目,记录一下遇到的问题和解决方法主要是前端。前端提交时使用,在后端再取出对应的微信支付看了下文档,以前是需要用唤起支付,而现在则是把微信内置到了微信的浏览器中。 目前正在写一个微信公众号的小项目,记录一下遇到的问题和解决方法(主要是前端)。内容持续更新中~ 主要实现 前后端分离前端为 SPA 单页面使用微信的JSSDK微信支付 技术方案 后端使用 php ...

    afishhhhh 评论0 收藏0
  • 使用 vue2.0 开发微信公众号下前后端分离的SPA站点填坑之旅

    摘要:目前正在写一个微信公众号的小项目,记录一下遇到的问题和解决方法主要是前端。前端提交时使用,在后端再取出对应的微信支付看了下文档,以前是需要用唤起支付,而现在则是把微信内置到了微信的浏览器中。 目前正在写一个微信公众号的小项目,记录一下遇到的问题和解决方法(主要是前端)。内容持续更新中~ 主要实现 前后端分离前端为 SPA 单页面使用微信的JSSDK微信支付 技术方案 后端使用 php ...

    Taonce 评论0 收藏0
  • 使用vue开发微信公众号下SPA站点填坑之旅

    摘要:原文见我的博客,点击进入使用开发微信公众号下站点的填坑之旅本文为我创业过程中,开发项目的填坑之旅。作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱。 原文见我的博客,点击进入使用vue开发微信公众号下SPA站点的填坑之旅 本文为我创业过程中,开发项目的填坑之旅。作为一个技术宅男,我的项目是做一个微信公众号,前后端全部自己搞定,不浪费国家一分钱^_^。 ...

    yeyan1996 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<