2013-10-03 66 views
2

如您所知,玩!在2.2.0版本中爲introduced Gzip encoding
不幸的是,更新項目和更新播放後,它不起作用。與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.scalaGzipFilter.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'中存在'filters'' ModuleID'(dependency),所以一定要在你的構建文件中包含'import play.Project._' 。 – cfeduke

相關問題