0

完全に機能する Java Play 2.0.4 アプリケーションが正常に動作しており、2.1 に移行しようとしています。

移行ガイドに従い、すべての変更を実装しました。アプリは正しくコンパイルされ、起動します。ただし、ページにアクセスしようとすると、次のようになり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参照用に完全なファイルを追加しました。

4

1 に答える 1

0

この問題は、この Play フレームワークのバグに関連しています: https://github.com/playframework/Play20/issues/822

基本的に、クラスローダーは DEV と PROD で同じように動作しません。

バグ レポートにアクセスして、修正への支持を表明してください。

于 2013-06-21T06:47:10.700 に答える