Próbuję utworzyć samodzielny JAR zawierający Akka, Spray i Jetty. Idealnie dystrybuuję całą aplikację w tym pojedynczym pliku, bez żadnych zewnętrznych plików.Łączenie Akka, Spray i osadzonego Jetty
rozumiem jak utworzyć osadzone Jetty wystąpienie serwera
def main(args: Array[String]): Unit = {
val server = new Server(9012);
server.start();
server.join();
Thread.sleep(2000);
server.stop();
}
a ja po przykładowy kod Spray w tworzeniu HelloService Boot i klasę, ale nie mam pojęcia, jak ziemskie, aby połączyć dwie , więc gdy na serwer Jetty jest żądany URL, usługa Spray odpowiada na nie. Każda pomoc byłaby bardzo cenna.
Aktualizacja: Dostaję dużo bliżej do rozwiązania tego problemu, dzięki wątku śledczej poproszony przez Alois Cochard (idę z internetowej skryptowego tle, a uzyskanie głowę wokół Javy usług internetowych ma było ... wyzwaniem!). Zmodyfikowałem swój main method, aby uruchomić serwer i odczytać pliki Jetty i akka configuration, które znajdują się w szablonie uruchamiania. To czytanie obu tych plików, ale teraz jestem coraz to kiedy należy przejść do/na serwerze pomost:
HTTP ERROR: 500
Problem accessing /. Reason:
assertion failed: 0 actors for id 'spray-root-service' found, expected exactly one
wiem, że czegoś brakuje głupie (i pewnie, że mam rozbić i użyć SBT , ale możliwość samodzielnego skompilowania i uruchomienia Eclipse, a następnie odświeżenia w przeglądarce, jest tak prosta i atrakcyjna).
Aktualizacja # 2: Wykryliśmy problem. Nie tworzyłem obiektu WebAppContext, co oznaczało, że web.xml nigdy nie został odczytany, a tym samym Akka nigdy nie był ładowany. This is the revised główna metoda, która teraz działa.
Czy wiesz o [sbt-assembly] (https://github.com/sbt/sbt-assembly)? – AmigoNico