使用Ebean播放Framework 2.3.x(Java)发行版

使用Ebean播放Framework 2.3.x(Java)发行版,java,web-deployment,playframework-2.3,ebean,Java,Web Deployment,Playframework 2.3,Ebean,我在本地机器上测试了Play Framework应用程序。一切正常。当我第一次在localhost:9000上启动Play应用程序时,它给了我一个错误,即我的数据库“default”需要改进。这一切都是意料之中的事,而且很有魅力 现在,当我使用命令activator clean dist呈现发行版时,将输出target/universal/my-project-name-version-number-SNAPSHOT.zip。然后我将这个文件上传到我的分发服务器并解压缩到那里 现在我来回答我的

我在本地机器上测试了Play Framework应用程序。一切正常。当我第一次在
localhost:9000
上启动Play应用程序时,它给了我一个错误,即我的数据库“default”需要改进。这一切都是意料之中的事,而且很有魅力

现在,当我使用命令
activator clean dist
呈现发行版时,将输出target/universal/my-project-name-version-number-SNAPSHOT.zip。然后我将这个文件上传到我的分发服务器并解压缩到那里

现在我来回答我的问题。存档被解压缩,我导航到
/bin
。然后运行命令
/my project name
,该命令输出以下内容:

Play server process ID is 1234
[info] play - database [default] connected at jdbc:h2:mem:my-project-name
Oops, cannot start the server.
Configuration error: Configuration error[Cannot register class [models.ModelName] 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:383)
    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:253)
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:289)
    at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:284)
    at scala.Option.map(Option.scala:145)
    at play.core.server.NettyServer$.main(NettyServer.scala:284)
    at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.lang.UnsupportedClassVersionError: models/ModelName : Unsupportedmajor.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)
    ... 15 more
播放服务器进程ID为1234
[info]播放-数据库[default]连接到jdbc:h2:mem:my project name
哦,无法启动服务器。
配置错误:配置错误[无法在Ebean服务器中注册类[models.ModelName]
at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94)
at play.api.Configuration.reportError(Configuration.scala:743)
play.Configuration.reportError(Configuration.java:310)
at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:81)
在play.api.play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(play.scala:91)
在play.api.play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(play.scala:91)
位于scala.collection.immutable.List.foreach(List.scala:383)
在play.api.play$$anonfun$start$1.apply$mcV$sp(play.scala:91)
在play.api.play$$anonfun$start$1.apply(play.scala:91)
在play.api.play$$anonfun$start$1.apply(play.scala:91)
在播放时.utils.Threads$.withContextClassLoader(Threads.scala:21)
在play.api.play$.start(play.scala:90)
正在运行.core.StaticApplication。(ApplicationProvider.scala:55)
播放时.core.server.NettyServer$.createServer(NettyServer.scala:253)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:289)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:284)
位于scala.Option.map(Option.scala:145)
at play.core.server.NettyServer$.main(NettyServer.scala:284)
正在运行的.core.server.NettyServer.main(NettyServer.scala)
原因:java.lang.UnsupportedClassVersionError:models/ModelName:Unsupportedmajor.minor版本52.0
位于java.lang.ClassLoader.defineClass1(本机方法)
位于java.lang.ClassLoader.defineClass(ClassLoader.java:800)
位于java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
位于java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
在java.net.URLClassLoader.access$100(URLClassLoader.java:71)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
在java.net.URLClassLoader$1.run(URLClassLoader.java:355)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:425)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:358)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:274)
at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:79)
... 还有15个
我的models.ModelName如下所示:

@Entity
public class ModelName extends Model {

    private static final long serialVersionUID = 3937829334149968337L;
    public static final Model.Finder<Long, ModelName> find = new Finder<Long, ModelName>(
        Long.class, ModelName.class
    );

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    protected Long id;

    @Constraints.Required
    protected String name;

    @Constraints.Required
    @Lob
    protected byte[] data;


    /** Getters/setters */
    public Long getId() {
        return this.id;
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public byte[] getData() {
        return this.data;
    }

    public void setData(byte[] data) {
        this.data = data;
    }
}
@实体
公共类ModelName扩展了模型{
私有静态最终长serialVersionUID=393782933414996837L;
public static final Model.Finder=new Finder(
Long.class,ModelName.class
);
@身份证
@GeneratedValue(策略=GenerationType.IDENTITY)
保护长id;
@约束条件。必需
受保护的字符串名称;
@约束条件。必需
@高球
受保护字节[]数据;
/**能手/二传手*/
公共长getId(){
返回此.id;
}
公共字符串getName(){
返回此.name;
}
公共void集合名(字符串名){
this.name=名称;
}
公共字节[]getData(){
返回此.data;
}
公共void setData(字节[]数据){
这个数据=数据;
}
}
有人知道为什么会这样,以及如何修复吗

编辑

将选项
applyEvolutions.default=true
放在my application.conf文件中并没有什么区别

求解


命令
/activator-DapplyEvolutions=true
起作用。该错误是由我使用的平台Windows引起的。在Linux平台上,这就像一种魅力。谢谢

在启动应用程序期间,使用
applyEvolutions
作为参数(最好编写shell脚本),如:


可能的重复项不起作用,Play会以
错误的应用程序路径:applyEvolutions.default=true
响应。注意:
/my project name-applyEvolutions.default=true
/my project name-applyEvolutions.default=true
也会给出相同的错误。请向我们展示您的ModelName模型和更多省略的错误消息
 ./my-project-name -DapplyEvolutions.default=true