2013-10-03 3 views
2

Как вы знаете, играйте! introduced Gzip encoding в версии 2.2.0.
К сожалению, после обновления проекта и обновления игры он не работает.Play framework с Gzip не работает

[error] ...\app\Global.scala:4: object filters is not a member of package play 
[error] import play.filters.gzip.GzipFilter 
[error]   ^
[error] ...\app\Global.scala:8: not found: type GzipFilter 
[error] object Global extends WithFilters(new GzipFilter) with GlobalSettings { 
[error]          ^
[error] two errors found 
[error] (compile:compile) Compilation failed 

Это не работает, даже если я создаю форму проекта консоли play new TEST.

Однако в C:\play-2.2.0\framework\src\play-filters-helpers\src\main\scala\play\filters\gzip У меня есть как Gzip.scala, так и GzipFilter.scala.

\app\Global.scala Мой выглядит так:

import play.api._ 
import play.api.mvc._ 
import play.api.mvc.Results._ 
import play.filters.gzip.GzipFilter 
import scala.concurrent.Future 
import scala.concurrent.ExecutionContext.Implicits.global 

object Global extends WithFilters(new GzipFilter) with GlobalSettings { 
    override def onStart(app: Application) { 
     Logger.info("Application has started") 
    } 

    override def onStop(app: Application) { 
     Logger.info("Application shutdown") 
    } 

    override def onError(request: RequestHeader, ex: Throwable) = Future { InternalServerError("{}") } 
    override def onBadRequest(request: RequestHeader, error: String) = Future { BadRequest("{}") } 
    override def onHandlerNotFound(request: RequestHeader) = Future { NotFound("{}") } 
} 

Что я делаю неправильно? Кто-нибудь заставлял это работать?

ответ

16

В Build.scala, просто добавьте "фильтры", чтобы ваши приложения зависимостей

val appDependencies = Seq(
    jdbc, cache, filters, ... 
) 

или, если вы делаете это с build.sbt

libraryDependencies ++= Seq(
    jdbc, cache, filters, ... 
) 
+0

Большое спасибо , Не могли бы вы объяснить это и сказать, как избежать таких ошибок в будущем? – squixy

+0

Существует не так много, чтобы избежать недостающей зависимости. Но сообщение об ошибке «XXX не является членом пакета YYY» всегда является довольно хорошим индикатором того, что пакет отсутствует (пока YYY не является вашим собственным пакетом). – tmbo

+1

... и если вы создали свой проект Play вручную, в 'play.Project' существует' '' '' '' '' '' '' '' '' '' '' '' '' filter'', поэтому обязательно включите 'import play.Project._' в файл сборки , – cfeduke

Смежные вопросы