ClassLoader 在迁移到 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$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:170) ~[play_2.10-2.3.8.jar:2.3.8]
        at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.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$1$$anonfun$apply$1.apply(ApplicationProvider.scala:130) ~[play_2.10-2.3.8.jar:2.3.8]
        at play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.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$1.run(Unknown Source) ~[na:1.7.0_75]
        at java.net.URLClassLoader$1.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

相关内容

最新更新