2012-11-29 3 views
2

작동하지 않습니다.기본 AkkaSupport 서블릿 예제

package me.myself.andi 

import _root_.akka.dispatch._ 
import org.scalatra.akka.AkkaSupport 
import org.scalatra.ScalatraServlet 

class MyAppServlet extends ScalatraServlet with AkkaSupport { 
    val system = ActorSystem("MySystem") 
    get("/"){ 
    Future(system) { // and also Future { 
     // Add other logic here 

     <html><body>Hello Akka</body></html> 
    } 
    } 
} 

을하지만 다른 오류 type mismatch; found : org.scalatra.ActionResult required: akka.dispatch.ExecutionContext가 나타날 수

다음, 나는 시도했다. 아카에게 익숙하지 않은데, 여기서 뭐하고있는거야?

libraryDependencies ++= Seq(
    "org.scalatra" % "scalatra" % "2.2.0-SNAPSHOT", 
    "org.scalatra" % "scalatra-scalate" % "2.2.0-SNAPSHOT", 
    "org.scalatra" % "scalatra-specs2" % "2.2.0-SNAPSHOT" % "test", 
    "org.scalatra" % "scalatra-akka" % "2.2.0-SNAPSHOT", 
    "com.typesafe.akka" % "akka" % "2.0.4", 
    "ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime", 
    "eu.infomas" % "annotation-detector" % "3.0.0", 
    "org.atmosphere" % "atmosphere-runtime" % "1.1.0-SNAPSHOT", 
    "org.eclipse.jetty" % "jetty-websocket" % "8.1.4.v20120524", 
    "org.eclipse.jetty" % "jetty-webapp" % "8.1.7.v20120910" % "container", 
    "org.eclipse.jetty" % "test-jetty-servlet" % "8.1.5.v20120716" % "test", 
    "org.eclipse.jetty" % "jetty-websocket" % "8.1.7.v20120910" % "container", 
    "org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar")) 
) 

답변

3

컴파일러 오류가 분명합니다. akka.actor.ActorSystem을 가져오고 val system = ActorSystem("MySystem")을 클래스에 추가하면 제대로 작동합니다.

편집 : 그것은 implicit val system = ActorSystem("MySystem")로하고 수동으로 시스템에 통과하지 못한 갖도록

system는 암시 값이어야합니다. 따라서 전체적으로는

class MyAppServlet extends ScalatraServlet with AkkaSupport { 
    implicit val system = ActorSystem("MySystem") 
    get("/"){ 
    Future { // and also Future { 
     // Add other logic here 

     <html><body>Hello Akka</body></html> 
    } 
    } 
} 
+0

이 업데이트되었습니다. –

+0

업데이트 내 대답 – drexin

+0

유레카. 감사! –