2014-01-04 3 views
2

У меня проблема с установкой GlobalSettings в Play. Метод onStart не выполняется. Это мой код:Play framework 2.2 scala onStart не работает

package app 
import akka.actor.ActorSystem 
import play.{GlobalSettings, Logger} 

object Global extends GlobalSettings { 

    val system = ActorSystem("app") 
    Logger.info("test1") 

    override def onStart(app: play.Application): Unit = { 
    super.onStart(app) 
    Logger.info("test2") 
    } 


} 

В консоли я вижу только test1. Может ли кто-нибудь сказать мне, что я делаю неправильно.

+0

Во-первых, я считаю, что вы не хотите иметь два сообщения «test1». Другой должен быть, может быть, «test2». –

+0

Да, я делаю опечатку, потому что в моих кодовых сообщениях несколько разные :). – mapek

ответ

5

Одной из проблем является то, что написал Видья. Другим является то, что ваш объект Global находится в пакете «приложение». Она должна быть не в соответствии с документацией: http://www.playframework.com/documentation/2.2.x/ScalaGlobal

«Этот объект должен быть определен в (пустой) пакет по умолчанию»

И еще один вопрос. Мой любимый в Play. Вы не импортируете правильные пакеты. Сделайте это:

import akka.actor.ActorSystem 
import play.api._ 
+0

Это отличный момент, который я пропустил. Хороший улов! "* Этот объект должен быть определен в пакете по умолчанию (пустой) и должен расширять GlobalSettings. *" – Vidya

+0

Хорошо, это правильный ответ, но как теперь я могу получить переменную из Global на примере в контроллере? – mapek

+1

Не имеют системы Akka в объекте Global. Используйте «Akka.system», чтобы получить его. Проверьте это: http://www.playframework.com/documentation/2.2.1/ScalaAkka –

1

Попробуйте вместо этого:

override def onStart(app: play.Application) { 
    super.onStart(app) 
    Logger.info("test2") 
} 
Смежные вопросы