2016-03-14 24 views
5

Questa è la prima volta che lavoro con akka-http. Ho scritto la seguente classe principale che avvia l'applicazione:Implementazione AKKA-http

object Main extends App with Routes with Config with Protocols { 
    implicit val system: ActorSystem = ActorSystem("slickboard-system") 
    implicit val executor: ExecutionContext = system.dispatcher 
    implicit val materializer: ActorMaterializer = ActorMaterializer() 

    override val employeeActor: ActorRef = system.actorOf(EmployeeActor.props, "employees") 

    val server = Http().bindAndHandle(route, httpServerURL, httpServerPort) 
} 

Si inizia un server su localhost, ma quando provo a schierare su un server Tomcat a distanza, non funziona più. Sta rispondendo con un HTTP 404: non trovato.

Ho cercato sul Web la distribuzione di akka-http, ma non ho trovato risposta. Qualcuno ha esperienza con questo problema?

Cordiali saluti

risposta

11

Akka-http non dovrebbe essere distribuito come un servlet, ma piuttosto un eseguibile standalone. Uno dei modi più diffusi per distribuire le app Akka è utilizzare il plug-in sbt-native-packager. Può creare pacchetti specifici per il sistema per la distribuzione, compresi i pacchetti deb e rpm con script di avvio per fornire un comportamento simile a un servizio su Linux.

Ho recentemente risposto alla domanda correlata, ma sul framework Play. Play e Akka sono simili dalla prospettiva di implementazione, quindi dai un'occhiata qui: https://stackoverflow.com/a/35648740/371804

+0

Qualche suggerimento su come distribuirlo su Azure? Supporta Java Web Apps, ma, come ho capito, Akka non esegue la quilifica come uno di questi .. – eddyP23

+0

https://stackoverflow.com/questions/45544840 – eddyP23

2

akka-http distribuisce con il proprio server Web incorporato (il server Web incorporato è la versione "evoluta" di spray-can akka). Mentre Spray ha avuto la possibilità di distribuire su un server web esterno (come servlet di spray), tale funzionalità non è stata trasferita su akka-http. C'è stato qualche dubbio sollevato nella comunità sul fatto che spray-servlet sarà qualcosa che verrà sempre portato su akka-http in futuro. Questo perché l'akka-http si è evoluto in un modo in cui il suo accoppiamento più stretto con il server incorporato di quanto lo fosse mai stato.