2011-08-17 18 views
9

Akka, Spray ve Jetty'yi içeren bağımsız bir JAR oluşturmaya çalışıyorum. İdeal olarak, tüm uygulamayı, tek bir dosyada, herhangi bir harici dosya olmadan dağıtıyorum.Akka, Sprey ve gömülü Jetty'i birleştirin

Ben gömülü bir İskelesi sunucusu örneğini

def main(args: Array[String]): Unit = { 
    val server = new Server(9012); 
    server.start(); 
    server.join(); 
    Thread.sleep(2000); 
    server.stop(); 
} 

nasıl oluşturulacağını anlamak ve ben HelloService ve önyükleme sınıf yaratmada Sprey örnek kod takip ettik ama ikisini bağlamak için nasıl dünyaya ait olmayan bir fikrim yok Böylece, Jetty sunucusunda bir URL talep edildiğinde, bir Püskürtme hizmeti buna yanıt verir. Herhangi bir yardım çok takdir edilecektir.

Güncelleme: Ben Alois Cochard (Bir web komut dosyası arka plandan gelen ve Java web hizmetleri etrafında başım alıyorum tarafından istendiğinde soruşturma konuya sayesinde bu sorunu çözmek için çok daha yakın alıyorum sahiptir ... zorlu!). Sunucuyu başlatmak için main method değiştirdim ve başlangıç ​​şablonundaki Jetty ve akka configuration dosyalarını oku. Bu bu dosyaların ikisi okuyor ama İskele sunucuda/gittiğinizde şimdi bu alıyorum:

HTTP ERROR: 500

Problem accessing /. Reason:

assertion failed: 0 actors for id 'spray-root-service' found, expected exactly one

Ben SBT yıkmak ve kullanması gerektiğini muhtemelen saçma (ve bir şey eksik biliyorum ancak Eclipse’te derlenip çalıştırılabilir ve daha sonra tarayıcıda tazelendiğinde çok basit ve çekici olur.

Güncelleştirme # 2: Sorun çözüldü. WebAppContext nesnesi yaratmıyordum, bu da web.xml'in hiç okunmadığını ve dolayısıyla Akka'nın hiç yüklenmediğini ifade ediyordu. Şu anda çalışan This is the revised ana yöntem.

+0

[sbt-assembly] (https://github.com/sbt/sbt-assembly) hakkında bilgi sahibi misiniz? – AmigoNico

cevap

5

sprey şablona göre, web.xml yapılandırma dosyasında Sprey servlet bağlayıcı eklemek gerekir: Bu kullanmak için bir standealone iskeleye yapılandırma hakkında bazı bilgiler bulabilirsiniz

http://github.com/spray/spray-template/blob/master/src/main/webapp/WEB-INF/web.xml

(netty belgelerinde mutlaka daha iyi referanslar doğrudan yoktur) dosyanızı buraya:

http://exist.sourceforge.net/deployment.html#d47e594

BTW, proje l için bir temel olarak sprey şablonu kullanarak iyi bir fikir gibi gözüküyor;)

+0

Yorum için teşekkürler, Alois. Sorunumu doğrudan çözmedim, ama doğru yöne yöneldim ve sonunda çözdüm. Şerefe! –

+0

Rica ederim! –

+0

@JohnBiesnecker, çözümünüzü paylaşabilir misiniz? – tiagoboldt