2013-04-11 93 views
0

我有一个完全Java功能播放2.0.4应用程序的工作就好了,我试图迁移到2.1播放框架2.1 NoSuchFieldError

我跟着Migration Guide和实施所有更改。该应用程序编译并正确启动。然而,当我尝试访问任何网页我得到一个NoSuchFieldError

play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.NoSuchFieldError: Application]] 

当然的Application控制器存在,且路由在conf/routes定义(因为它是在工作2.0.4版本迁移之前)。

从堆栈跟踪中,我怀疑它与路由器有关。下面是完整的跟踪:

play.api.Application$$anon$1: Execution exception[[RuntimeException: java.lang.NoSuchFieldError: Application]] 
at play.api.Application$class.handleError(Application.scala:289) ~[play_2.10.jar:2.1.0] 
at play.api.DefaultApplication.handleError(Application.scala:383) [play_2.10.jar:2.1.0] 
at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:132) [play_2.10.jar:2.1.0] 
at play.core.server.netty.PlayDefaultUpstreamHandler$$anon$2$$anonfun$handle$1.apply(PlayDefaultUpstreamHandler.scala:128) [play_2.10.jar:2.1.0] 
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0] 
at play.api.libs.concurrent.PlayPromise$$anonfun$extend1$1.apply(Promise.scala:113) [play_2.10.jar:2.1.0] 
java.lang.RuntimeException: java.lang.NoSuchFieldError: Application 
at play.libs.F$Promise$6.apply(F.java:401) ~[play_2.10.jar:2.1.0] 
at scala.concurrent.Future$$anonfun$map$1.liftedTree2$1(Future.scala:253) ~[scala-library.jar:na] 
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:249) ~[scala-library.jar:na] 
at scala.concurrent.Future$$anonfun$map$1.apply(Future.scala:249) ~[scala-library.jar:na] 
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:29) ~[scala-library.jar:na] 
at akka.dispatch.BatchingExecutor$Batch$$anonfun$run$1.liftedTree1$1(BatchingExecutor.scala:67) ~[akka-actor_2.10.jar:na] 
Caused by: java.lang.NoSuchFieldError: Application 
at views.html.login$.apply(login.template.scala:54) ~[na:na] 
at views.html.login$.render(login.template.scala:109) ~[na:na] 
at views.html.login.render(login.template.scala) ~[na:na] 
at controllers.Application.login(Application.java:38) ~[na:na] 
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(routes_routing.scala:241) ~[na:na] 
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$1$$anonfun$apply$1.apply(routes_routing.scala:241) ~[na:na] 

这是我Build.scala文件:

import sbt._ 
import Keys._ 
import play.Project._ 

object ApplicationBuild extends Build { 

    val appName   = "rossirixweb" 
    val appVersion  = "1.0-SNAPSHOT" 

    val appDependencies = Seq(
     javaCore, 
     javaJdbc, 
     javaEbean, 
     "org.apache.xmlrpc" % "xmlrpc" % "3.0", 
     "commons-httpclient" % "commons-httpclient" % "3.1", 
     "com.google.code.gson" % "gson" % "2.2.2", 
     "junit" % "junit" % "4.11", 
     "org.mongodb" % "mongo-java-driver" % "2.8.0", 
     "org.jongo" % "jongo" % "0.3", 
     "mysql" % "mysql-connector-java" % "5.1.22", 
     "com.typesafe" %% "play-plugins-mailer" % "2.1.0", 
     "be.objectify" %% "deadbolt-java" % "2.1-RC2" 
    ) 

    val main = play.Project(appName, appVersion, appDependencies).settings(
     resolvers += Resolver.url("My GitHub Play Repository", url("http://alexanderjarvis.github.com/releases/"))(Resolver.ivyStylePatterns), 
     resolvers += Resolver.url("Objectify Play Repository", url("http://schaloner.github.com/releases/"))(Resolver.ivyStylePatterns), 
     resolvers += Resolver.url("Objectify Play Snapshot Repository", url("http://schaloner.github.com/snapshots/"))(Resolver.ivyStylePatterns) 
    ) 
} 

我不能让应用程序启动和运行。

任何想法?谢谢!

更新:我添加了完整的Build.scala文件以供参考。

+0

向我们展示整个'Build.scala'文件。 – maba 2013-04-12 12:22:59

+0

我在问题中添加了整个文件@maba。 – monsieurBelbo 2013-04-12 15:37:13

+0

错误消息提到'NoSuchFieldError'那么模板文件呢。你有没有对称为应用程序的字段的任何引用? – maba 2013-04-15 06:49:32

回答

0

此问题与来此游玩框架错误:https://github.com/playframework/Play20/issues/822

基本上类加载器的行为不一样的DEV和PROD

请到错误报告,并显示它固定您的支持。

+0

它看起来不像我这样的问题你有没有尝试一个播放干净吗?例外来自login.scala.html模板,那里有什么? – 2013-06-25 00:15:58