title: Play Framework For Scala: Compilation error[type Application is not a member of package controllers]
body: <p>I try to compile a scala example in the book: "Play for Scala" but get a following compilation error on Play console:</p>
  
  <pre><code>C:\Play\exp\ch6_implicits&gt;activator run
  [info] Loading project definition from C:\Play\exp\ch6_implicits\project
  [info] Set current project to ch6_implicits (in build file:/C:/Play/exp/ch6_implicits/)
  
  --- (Running the application, auto-reloading is enabled) ---
  
  [info] p.a.l.c.ActorSystemProvider - Starting application default Akka system: application
  [info] p.c.s.NettyServer$ - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
  
  (Server started, use Ctrl+D to stop and go back to the console...)
  
  [info] Compiling 13 Scala sources and 1 Java source to C:\Play\exp\ch6_implicits\target\scala-2.11\classes...
  [error] C:\Play\exp\ch6_implicits\conf\routes:6: type Application is not a member of package controllers
  [error] GET             /                               controllers.Application.index
  [error] C:\Play\exp\ch6_implicits\conf\routes:7: type Shop is not a member of package controllers
  [error] GET             /catalog                controllers.Shop.catalog
  [error] C:\Play\exp\ch6_implicits\conf\routes:6: type Application is not a member of package controllers
  [error] GET             /                               controllers.Application.index
  [error] C:\Play\exp\ch6_implicits\conf\routes:7: type Shop is not a member of package controllers
  [error] GET             /catalog                controllers.Shop.catalog
  [error] C:\Play\exp\ch6_implicits\conf\routes:6: type Application is not a member of package controllers
  [error] GET             /                               controllers.Application.index
  [error] C:\Play\exp\ch6_implicits\conf\routes:7: type Shop is not a member of package controllers
  [error] GET             /catalog                controllers.Shop.catalog
  [error] 6 errors found
  [error] (compile:compileIncremental) Compilation failed
  [error] application -
  
  ! @6mafk6inc - Internal server error, for (GET) [/products/new] -&gt;
  
  play.sbt.PlayExceptions$CompilationException: Compilation error[type Application is not a member of package controllers]
          at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
          at play.sbt.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
          at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
          at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:49) ~[na:na]
          at play.sbt.run.PlayReload$$anonfun$taskFailureHandler$1.apply(PlayReload.scala:44) ~[na:na]
          at scala.Option.map(Option.scala:145) ~[scala-library-2.11.6.jar:na]
          at play.sbt.run.PlayReload$.taskFailureHandler(PlayReload.scala:44) ~[na:na]
          at play.sbt.run.PlayReload$.compileFailure(PlayReload.scala:40) ~[na:na]
          at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
          at play.sbt.run.PlayReload$$anonfun$compile$1.apply(PlayReload.scala:17) ~[na:na]
  </code></pre>
  
  <p>Application.scala is:</p>
  
  <pre><code>package controllers
  
  import play.api._
  import play.api.mvc._
  
  // We extend the 'WithCart' trait, so we have an implicit conversion from RequestHeader to Cart
  object Application extends Controller with WithCart {
  
    def index = Action { implicit request =&gt;
      // The index template takes an implicit Cart, which is not available.
      // However, the WithCart trait has an implicit conversion from
      // RequestHeader to Cart, and we do have an implicit RequestHeader
      // here, because `request` is a Request, which extends RequestHeader.
      Ok(views.html.index())
    }
  
    def contact = Action { implicit request =&gt;
      Ok(views.html.contact())
    }
  
  }       
  </code></pre>
  
  <p>Shop.scala is</p>
  
  <pre><code>package controllers
  
  import play.api._
  import play.api.mvc._
  import models._
  
  object Shop extends Controller with WithCart {
  
    def catalog() = Action { implicit request =&gt;
      val products = ProductDAO.list
      Ok(views.html.products.catalog(products))
    }
  
  }
  </code></pre>
  
  <p>And routes file is:</p>
  
  <pre><code># Routes
  # This file defines all application routes (Higher priority routes first)
  # ~~~~
  
  # Home page
  GET     /               controllers.Application.index
  GET     /catalog        controllers.Shop.catalog
  GET     /contact        controllers.Application.contact
  
  # Map static resources from the /public folder to the /assets URL path
  GET     /assets/*file               controllers.Assets.at(path="/public", file)
  </code></pre>
  
  <p>Play Framework is 2.4.0 and about says:</p>
  
  <pre><code>[ch6_implicits] $ about
  [info] This is sbt 0.13.8
  [info] The current project is {file:/C:/Play/exp/ch6_implicits/}root 1.0-SNAPSHOT
  [info] The current project is built against Scala 2.11.6
  [info] Available Plugins: sbt.plugins.IvyPlugin, sbt.plugins.JvmPlugin, sbt.plugins.CorePlugin, sbt.plugins.JUnitXmlReportPlugin, play.sbt.Play, play.sbt.PlayAkkaHttpServer, play.sbt.PlayJava, play.sb
  t.PlayLayoutPlugin, play.sbt.PlayNettyServer, play.sbt.PlayScala, play.sbt.routes.RoutesCompiler, play.twirl.sbt.SbtTwirl, com.typesafe.sbt.SbtNativePackager, com.typesafe.sbt.packager.archetypes.Akka
  AppPackaging, com.typesafe.sbt.packager.archetypes.JavaAppPackaging, com.typesafe.sbt.packager.archetypes.JavaServerAppPackaging, com.typesafe.sbt.packager.archetypes.jar.ClasspathJarPlugin, com.types
  afe.sbt.packager.archetypes.jar.LauncherJarPlugin, com.typesafe.sbt.packager.debian.DebianDeployPlugin, com.typesafe.sbt.packager.debian.DebianPlugin, com.typesafe.sbt.packager.debian.JDebPackaging, c
  om.typesafe.sbt.packager.docker.DockerPlugin, com.typesafe.sbt.packager.jdkpackager.JDKPackagerDeployPlugin, com.typesafe.sbt.packager.jdkpackager.JDKPackagerPlugin, com.typesafe.sbt.packager.linux.Li
  nuxPlugin, com.typesafe.sbt.packager.rpm.RpmDeployPlugin, com.typesafe.sbt.packager.rpm.RpmPlugin, com.typesafe.sbt.packager.universal.UniversalDeployPlugin, com.typesafe.sbt.packager.universal.Univer
  salPlugin, com.typesafe.sbt.packager.windows.WindowsDeployPlugin, com.typesafe.sbt.packager.windows.WindowsPlugin, com.typesafe.sbt.web.SbtWeb, com.typesafe.sbt.jse.SbtJsEngine, com.typesafe.sbt.jse.S
  btJsTask, com.typesafe.sbt.coffeescript.SbtCoffeeScript, com.typesafe.sbt.less.SbtLess, com.typesafe.sbt.jshint.SbtJSHint, com.typesafe.sbt.rjs.SbtRjs, com.typesafe.sbt.digest.SbtDigest, com.typesafe.
  sbt.mocha.SbtMocha, com.typesafe.sbteclipse.plugin.EclipsePlugin
  [info] sbt, sbt plugins, and build definitions are using Scala 2.10.4
  [ch6_implicits] $
  </code></pre>
  
  <p>And Java version is:</p>
  
  <pre><code>C:\Play\exp\ch6_implicits&gt;java -version
  java version "1.8.0_45"
  Java(TM) SE Runtime Environment (build 1.8.0_45-b15)
  Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
  
  C:\Play\exp\ch6_implicits&gt;javac -version
  javac 1.8.0_45
  </code></pre>
  
  <p>Any ideas what's the problem and how to fix this?</p>
  
  <p>So far other examples have compiled and run without error in my environment.</p>
  
  <p>Thank you for your support!</p>