Play framework 2.3.x Server Error 无法注册类

Posted

技术标签:

【中文标题】Play framework 2.3.x Server Error 无法注册类【英文标题】:Play framework 2.3.x Server Error Cannot register class 【发布时间】:2015-06-21 06:36:21 【问题描述】:

我最近在服务器上上传了 Play 应用程序。问题是我可以通过命令 activator run 运行应用程序,它编译并运行良好。当我尝试执行 activator clean stage 时,它也会编译,但在 target/universal/stage/bin/name_of_myapp 之后会抛出类似

的错误
Oops, cannot start the server.
Configuration error: Configuration error[Cannot register class [models.Movie] in Ebean server]
at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94)
at play.api.Configuration.reportError(Configuration.scala:743)
at play.Configuration.reportError(Configuration.java:310)
at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:81)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at scala.collection.immutable.List.foreach(List.scala:381)
at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.Play$.start(Play.scala:90)
at play.core.StaticApplication.<init>(ApplicationProvider.scala:55)
at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
at scala.Option.map(Option.scala:145)
at play.core.server.NettyServer$.main(NettyServer.scala:275)
at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.lang.UnsupportedClassVersionError: models/Movie : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:274)
at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:79)

服务器上的 Java 版本是 1.7.x,而我的是 1.8.0_31 我无法在服务器上升级 Java 版本

【问题讨论】:

【参考方案1】:

问题已解决。 它是服务器上的 Java 版本,与我的不同。将项目移动到服务器后,我不得不在 ./activator clean 之后使用 ./activator compile 对其进行编译,因此它是在服务器 Java 下编译的。现在我可以生成工作 stag 并运行它而不会出错

【讨论】:

以上是关于Play framework 2.3.x Server Error 无法注册类的主要内容,如果未能解决你的问题,请参考以下文章

如何在构建定义中更改 Play 2.3.x 中的默认端口 9000?

Play Framework:如何不查看文件夹以了解 Play Framework 中的更改

如何构建版本独立的 Play!Framework 2 模块?

Play framework 2.5新建工程执行日志

Play Framework Java - 包 play.db 不存在

play-framework的安装与使用