java.lang.NoSuchFieldException:_ebean_props总是在将Ebean从3.3.4升级到4.5.5时发生,

时间:2015-04-13 13:51:36

标签: java scala playframework ebean playframework-2.3

我将Ebean从3.3.4升级到4.5.5,但始终出现以下错误:

 java.lang.NoSuchFieldException: _ebean_props

并且在我运行"激活器清理,编译"之后它仍然存在命令。

我跑'#34;激活者ui"命令,我看到了以下日志:

**Read from stdout: Here are some of the libraries that were evicted:
Here are some of the libraries that were evicted:
Read from stdout:   * org.avaje.ebeanorm:avaje-ebeanorm:3.3.4 -> 4.5.5
    * org.avaje.ebeanorm:avaje-ebeanorm:3.3.4 -> 4.5.5
Read from stdout:   * org.avaje.ebeanorm:avaje-ebeanorm-agent:3.2.2 -> 4.5.2
    * org.avaje.ebeanorm:avaje-ebeanorm-agent:3.2.2 -> 4.5.2
Read from stdout: Run 'evicted' to see detailed eviction warnings**

我的播放框架是2.3.8,Scala SDK是2.11.6。

如何解决问题?

提前致谢。

2 个答案:

答案 0 :(得分:0)

我不相信Play Framework 2.3及更低版本可以使用Ebean的最新版本(4.x)。在Play 2.4中,它们正在解耦play-ebean插件,这将有望为允许使用更新版本的Ebean铺平道路。

您可以观看此主题以获取更新信息: https://github.com/playframework/playframework/issues/2926

此外,Play-Ebean插件将在Play 2.4中使用: https://github.com/playframework/play-ebean

答案 1 :(得分:0)

我们这样做。您必须在您的sbt包含中不包含javaEbean,而是包含新的ebean库。 (例如:"org.avaje.ebeanorm" % "avaje-ebeanorm" % "4.5.5")。您还需要通过java代理或代理加载器自行启用增强功能(请参阅:Ebean ORM::Enhancement

注意,您还需要更改模型,服务等类中的include语句以指向新包(它们从3.x更改为4.x更改),编译时会很明显如果你的IDE没有警告你。