迁移到 Play Framework 2.3 后 ClassLoader 失败

ClassLoader fails after migration to Play Framework 2.3

我正在从 Play Framework 2.2 迁移到 2.3.8,我已经解决了一些错误,但还在继续寻找更多错误。新的虽然没有提供太多提示。我收到此错误:

play.api.UnexpectedException: Unexpected exception[NoClassDefFoundError: play/api/mvc/SimpleResult]
        at play.core.ReloadableApplication$$anonfun$get$$anonfun$apply$$anonfun.apply(ApplicationProvider.scala:170) ~[play_2.10-2.3.8.jar:2.3.8]
        at play.core.ReloadableApplication$$anonfun$get$$anonfun$apply$$anonfun.apply(ApplicationProvider.scala:130) ~[play_2.10-2.3.8.jar:2.3.8]
        at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
        at play.core.ReloadableApplication$$anonfun$get$$anonfun$apply.apply(ApplicationProvider.scala:130) ~[play_2.10-2.3.8.jar:2.3.8]
        at play.core.ReloadableApplication$$anonfun$get$$anonfun$apply.apply(ApplicationProvider.scala:128) ~[play_2.10-2.3.8.jar:2.3.8]
Caused by: java.lang.NoClassDefFoundError: play/api/mvc/SimpleResult
        at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.7.0_75]
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source) ~[na:1.7.0_75]
        at java.lang.Class.getDeclaredMethods(Unknown Source) ~[na:1.7.0_75]
        at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:571) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
        at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:490) ~[spring-core-4.1.1.RELEASE.jar:4.1.1.RELEASE]
Caused by: java.lang.ClassNotFoundException: play.api.mvc.SimpleResult
        at java.net.URLClassLoader.run(Unknown Source) ~[na:1.7.0_75]
        at java.net.URLClassLoader.run(Unknown Source) ~[na:1.7.0_75]
        at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_75]
        at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.7.0_75]
        at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.7.0_75]

我已经按照迁移指南中的描述删除了所有对 SimpleResult 的引用以及正确的 Result。我认为我的一个插件中可能引用了它。我正在使用这些插件:

javaCore,
javaJdbc,
javaEbean,
filters,
cache, 
javaWs,
"org.drools" % "drools-core" % "5.5.0.Final",
"org.drools" % "drools-compiler" % "5.5.0.Final",
"org.jbpm" % "jbpm-bpmn2" % "5.4.0.Final",
"org.jbpm" % "jbpm-flow" % "5.4.0.Final",

"org.drools" % "drools-persistence-jpa" % "5.5.0.Final",
"org.jbpm" % "jbpm-persistence-jpa" % "5.4.0.Final",
"org.jbpm" % "jbpm-workitems" % "5.4.0.Final",
"org.hibernate" % "hibernate-core" % "4.3.0.Final",
"org.hibernate" % "hibernate-entitymanager" % "4.3.0.Final",
"org.springframework" % "spring-orm" % "4.1.1.RELEASE",
"org.springframework" % "spring-expression" % "4.1.1.RELEASE",
"org.springframework" % "spring-aop" % "4.1.1.RELEASE",
"org.springframework" % "spring-web" % "4.1.1.RELEASE",
"org.drools" % "drools-spring" % "5.5.0.Final",

"org.apache.httpcomponents" % "httpclient" % "4.2.1",  //can we use 4.0.1
"org.apache.httpcomponents" % "httpcore" % "4.2",      //can we use 4.0.1
"com.github.detro.ghostdriver" % "phantomjsdriver" % "1.0.4" % "test",

"com.typesafe.play" %% "play-mailer" % "2.4.0",
"org.apache.ws.xmlschema" % "xmlschema-core" % "2.1.0",
"org.springframework" % "spring-context" % "4.1.1.RELEASE",
"org.apache.cxf" % "cxf-api" % "2.7.10",
"org.apache.cxf" % "cxf-rt-core" % "2.7.10",
"org.apache.cxf" % "cxf-rt-frontend-jaxws" % "2.7.10",

"com.mohiva" % "play-html-compressor_2.10" % "0.3.1"

我不知道这是不是我的插件,那只是一个猜测。如果是,是否有办法找出引用它的是哪一个?

谢谢。

我发现一些我依赖的库失败了,因为它们依赖于 Play 2.2。始终注意将哪些 JAR 放入 lib 文件夹!将这些依赖项更改为通过托管源检索的更新版本解决了问题并删除了不必要的 JAR