/ / Scala 2.11.4, akka 2.3.7, spray 1.3.1 дає помилку несумісності типу - scala, akka, spray

Scala 2.11.4, akka 2.3.7, spray 1.3.1 дає помилку несумісності типу - scala, akka, spray

Я новачок у Scala. Під час намагання спрей з аккою я отримую таку помилку

Error:(17, 17) type mismatch;
found   : String("Welcome to Scala")
required: spray.httpx.marshalling.ToResponseMarshallable
complete("Welcome to Scala")

Код:

import spray.routing._
import akka.actor._
object SampleApplication extends App with SimpleRoutingApp {
implicit val actorSystem = ActorSystem()
startServer(interface = "localhost", port = 8080) {
get {
path("hello") {
complete {
"Welcome to Scala"
}
}
}
}
}

Maven залежностей:

  <dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.specs</groupId>
<artifactId>specs</artifactId>
<version>1.2.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-routing</artifactId>
<version>${spray.version}</version>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-can</artifactId>
<version>${spray.version}</version>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-httpx</artifactId>
<version>${spray.version}</version>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-client</artifactId>
<version>${spray.version}</version>
</dependency>
<dependency>
<groupId>io.spray</groupId>
<artifactId>spray-json_2.11</artifactId>
<version>${spray.version}</version>
</dependency>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.11</artifactId>
<version>${akka.version}</version>
</dependency>
</dependencies>

Іде використовується intellij Idea 14

Чи залежність суворо пов'язується з версією Scala?

Будь ласка, допоможіть вирішити проблему.

Відповіді:

0 для відповіді № 1

Ваш приклад працює для мене. Я підозрюю що-небудь неправильно з вашими залежностями, що викликає spray.httpx.marshalling не можна знайти.

В цілому я настійно рекомендую не використовувати Maven зСкала і дотримуйтесь SBT замість цього. З SBT ви отримуєте доступ до тих самих залежностей (як у Maven), але також може безпосередньо вказати залежність від GitHub. Ви також отримаєте додаткову компіляцію. Зручна можливість запуску контейнера оболонки або сервлета в сбт. Якщо ви використовуєте Intellij IDEA, ви можете відкрити конфігурацію SBT як проект. І це поставляється з виконанням завдань, які, напевно, вам знадобиться (тестування, запуск, документація, опублікування-локальна, консоль).