На сервере вы можете развернуть свое приложение как войну. Как построить войну с помощью спрей-сервлета . Локально проще всего работать без сервера приложений.
Мы включили зависимости как спрей-сервлет, так и спрей-баллончик:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
name := "sprayApiExample" version := "1.0" scalaVersion := "2.11.6" libraryDependencies ++= { val akkaV = "2.3.9" val sprayV = "1.3.3" Seq( "io.spray" %% "spray-can" % sprayV, "io.spray" %% "spray-servlet" % sprayV, "io.spray" %% "spray-routing" % sprayV, "io.spray" %% "spray-json" % "1.3.1" , //has not been updated yet "com.typesafe.akka" %% "akka-actor" % akkaV ) } //This adds tomcat dependencies, you can also use jetty() tomcat() |
Мы делаем черту со всеми общими функциями. Мы расширяем SprayApiServlet и SprayApiCan из него.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import akka.actor.{ActorSystem, Props} import akka.io.IO import akka.pattern.ask import akka.util.Timeout import spray.can.Http import spray.servlet.WebBoot import scala.concurrent.duration._ trait SprayApi { implicit val system = ActorSystem( "SprayApiApp" ) val apiActor = system.actorOf(Props[ApiActor], "apiActor" ) } //for use with spray-servlet class SprayApiServlet extends WebBoot with SprayApi { override val serviceActor = apiActor } //for use with spray-can object SprayApiCan extends App with SprayApi { implicit val timeout = Timeout( 5 .seconds) IO(Http) ? Http.Bind(apiActor, interface = "localhost" , port = 8080 ) } |
- Вы можете увидеть весь пример здесь.
Ссылка: | Чередование Spray-сервлета и Spray-can от нашего партнера JCG Таммо Сминии в блоге JDriven . |