1

当我在 lib 目录中包含我的一组非托管 jar 时,我在任何 POST 请求中都会收到此错误。如果我删除 lib 目录,一切正常。如果它在那里,我会收到这个错误。有什么想法吗?

play.core.ActionInvoker$$anonfun$receive$1$$anon$1: Execution exception [[NoSuchMethodError: org.apache.commons.io.IOUtils.closeQuietly(Ljava/io/Closeable;)V]]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134) [play_2.9.1.jar:2.0.4]
at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115) [play_2.9.1.jar:2.0.4]
at akka.actor.Actor$class.apply(Actor.scala:318) [akka-actor.jar:2.0.2]
at play.core.ActionInvoker.apply(Invoker.scala:113) [play_2.9.1.jar:2.0.4]
at akka.actor.ActorCell.invoke(ActorCell.scala:626) [akka-actor.jar:2.0.2]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197) [akka-actor.jar:2.0.2]
Caused by: java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.closeQuietly(Ljava/io/Closeable;)V
at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:1150) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1091) ~[commons-io-2.4.jar:2.4]
at org.apache.commons.io.FileUtils.copyFile(FileUtils.java:1038) ~[commons-io-2.4.jar:2.4]
at controllers.IAcontroller.submit(IAcontroller.java:161) ~[classes/:na]
at Routes$$anonfun$routes$1$$anonfun$apply$13$$anonfun$apply$14.apply(routes_routing.scala:132) ~[classes/:na]
at Routes$$anonfun$routes$1$$anonfun$apply$13$$anonfun$apply$14.apply(routes_routing.scala:132) ~[classes/:na]
4

1 回答 1

1

AFAIK,Play 2.0.4commons-io:commons-io:2.0.1通过 selenium 包含本身由 fluentlenium 带来的。而且我怀疑您commons-iolib文件夹中导入了不同版本的 。

您可以dependencies在 Play 控制台上使用以下命令进行检查:

[my_project] $ dependencies
...
| commons-io:commons-io:2.0.1 | org.seleniumhq.selenium:selenium-firefox-driver:2.16.1 | As commons-io.jar |
...
[my_project] $

因此,要么从你的 lib 目录中删除 Play 的依赖项(如果你不使用 fluentlenium)。

要从中删除传递依赖项fluentlenium,请编辑您Build.scala的:

val appDependencies = Seq(
     ...
     ("org.fluentlenium" % "fluentlenium-festassert" % "0.5.6" % "test") .exclude("commons-io", "commons-io")
    )
于 2013-03-17T12:05:26.163 回答