playframework - JNotify 阻止 Play 应用程序的执行

标签 playframework playframework-2.0 playframework-2.3

升级之前,我们的应用程序版本为 v2.1.1,我收到了有关缺少 JNotify 的警告。据我所知,没有伤害,没有犯规。但是,迁移到 v2.3.1 后,该警告已变成显示停止异常。我编译然后尝试运行并接收以下输出:

java.lang.NoClassDefFoundError: Could not initialize class net.contentobjects.jnotify.JNotify
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at play.PlayReloader$$anon$1$$anon$7.removeWatch(PlayReloader.scala:113)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at play.PlayReloader$$anon$1.liftedTree1$1(PlayReloader.scala:119)
    at play.PlayReloader$$anon$1.jnotify$lzycompute(PlayReloader.scala:60)
    at play.PlayReloader$$anon$1.jnotify(PlayReloader.scala:40)
    at play.PlayReloader$$anon$1$$anonfun$10.apply(PlayReloader.scala:155)
    at play.PlayReloader$$anon$1$$anonfun$10.apply(PlayReloader.scala:155)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at play.PlayReloader$$anon$1.<init>(PlayReloader.scala:155)
    at play.PlayReloader$class.newReloader(PlayReloader.scala:24)
    at play.Play$.newReloader(Project.scala:17)
    at play.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$1.reloader$lzycompute$1(PlayRun.scala:175)
    at play.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$1.play$PlayRun$class$$anonfun$$anonfun$$reloader$1(PlayRun.scala:175)
    at play.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$1.apply(PlayRun.scala:198)
    at play.PlayRun$$anonfun$playRunTask$1$$anonfun$apply$1.apply(PlayRun.scala:98)
    at scala.Function9$$anonfun$tupled$1.apply(Function9.scala:35)
    at scala.Function9$$anonfun$tupled$1.apply(Function9.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) java.lang.NoClassDefFoundError: Could not initialize class net.contentobjects.jnotify.JNotify

我做了一些挖掘,我知道 JNotify 库应该可用,因为我在 activator/repository/以及 user/.ivy2/cache/存储库(以及所有我的自定义依赖项正在被拾取)。 [此外,我将它放在本地 Maven 存储库中,并将其作为依赖项添加到 Build.scala 中,在编译过程中似乎也没有问题。)是否需要某种我错过的手动过程?据我所知,它应该可供应用程序使用。

(我知道 v2.3.2 的发行说明中有关于 JNotify 的注释,但这似乎是一个不同的问题,并且没有提到 v2.3.1 中的严重错误。)

最佳答案

经过进一步调查,这似乎是由于 v2.3.1 中的错误造成的,该错误已在 v2.3.2 中得到解决。错误报告在这里:https://github.com/playframework/playframework/issues/2946 。该错误的表现与错误报告中描述的不同,但重复该错误的过程涉及一些相同的步骤。对于目前使用 v2.3.1 的用户来说,解决方法就是避免使用激活器控制台中的“重新加载”命令。如果需要重新加载,请退出激活器并重新启动它,因为此工作流程不会导致此问题。

编辑:发现其他错误报告 - 其中之一描述了遇到的问题。

https://github.com/playframework/playframework/issues/3170 https://github.com/playframework/playframework/pull/2620

关于playframework - JNotify 阻止 Play 应用程序的执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25191281/

相关文章:

游戏框架中的分页

database - H2 内存数据库,[JdbcSQLException : Table "USERINFO" not found; SQL statement:

java - 将信息从拦截器传递到 Controller 方法

mysql - 玩!框架 - Evolution 不会在带有 MySQL 的服务器上自动启动

java - 为tomcat配置apache网桥

javascript - 对 Play REST 服务器的 Angular 2 http 请求

mysql - [SQL异常 : Access denied for user '' @'179.43.156.163' (using password: YES)]

playframework - 在Play Framework 2.0上运行进化

image - 在 play 2 中处理动态创建的文件

scala - Scala play 框架中的表单