Я пытаюсь узнать Play, Scala и Guice на данный момент, и у меня проблема с version 2.3.7 of Play. Когда я запускаю пример, изменяя плагины. sbt Воспроизводит версию до 2.3.6 приложение ApplicationController приложения загружается нормально. Однако при переключении на 2.3.7 в plugins.sbt я просто получаю пустую страницу.Почему Play v2.3.6 работает с Guice, но не Play v2.3.7?
Я объединил пример Play-Guice (который построен с более ранней версией Play) с примером доступа к данным .
Вот мой Application.scala играть код контроллера без упаковки и импорта:
@Singleton
class Application @Inject() (textGenerator: TextGenerator) extends Controller {
def index = Action {
Ok(views.html.index(textGenerator.welcomeText))
}
}
object Application extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready.", "Home"))
}
}
Вот мой Global.scala (минус импорт):
object Global extends GlobalSettings {
/**
* Bind types such that whenever TextGenerator is required, an instance of WelcomeTextGenerator will be used.
*/
val injector = Guice.createInjector(new AbstractModule {
protected def configure() {
bind(classOf[TextGenerator]).to(classOf[WelcomeTextGenerator])
}
})
/**
* Controllers must be resolved through the application context. There is a special method of GlobalSettings
* that we can override to resolve a given controller. This resolution is required by the Play router.
*/
override def getControllerInstance[A](controllerClass: Class[A]): A = injector.getInstance(controllerClass)
}
Может кто-нибудь увидеть, почему одна версия игры будет работать, но не другой?
Любые запросы информации или образованные догадки также приветствуются!
Примечание: до сих пор нет явного сообщения об ошибке, единственная разница, которую я видел между двумя версиями, - это одна загрузка страницы, а другая - нет. Нет известных зарегистрированных ошибок, сообщений об ошибках или различий кода (кроме, конечно, переключателя версии).
Build.scala (минус импорт):
object ApplicationBuild extends Build {
val appName = "root"
val appVersion = "1.0-SNAPSHOT"
val appDependencies = Seq(
"com.google.inject" % "guice" % "3.0",
"javax.inject" % "javax.inject" % "1",
"org.mockito" % "mockito-core" % "1.9.5" % "test"
)
val main = Project(appName, file(".")).enablePlugins(play.PlayScala).settings(
version := appVersion,
libraryDependencies ++= appDependencies
)
}
Любой выход из корпуса SBT? – Mikesname
@Mikesname - я не вижу ничего в окне журнала вкладки воспроизведения, просто типичные сообщения запуска. Я посмотрю, смогу ли я выяснить, есть ли там какие-то другие записи, которые я пропускаю. Также я думал о добавлении журнала в контроллер, что могло бы помочь. –
Я использую 4.0-бета5, и мое приложение работает с игрой 2.3.7 (и ранее). –