2011-08-17 28 views
9

Tôi đang cố gắng tạo một JAR độc lập có chứa Akka, Spray và Jetty. Lý tưởng nhất là tôi phân phối toàn bộ ứng dụng trong một tệp duy nhất, mà không có bất kỳ tệp bên ngoài nào.Kết hợp Akka, Phun và Cầu nối được nhúng

Tôi hiểu làm thế nào để tạo ra một máy chủ dụ Jetty nhúng

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

và tôi đã theo mã Spray dụ trong việc tạo ra một HelloService và Boot lớp, nhưng tôi không có ý tưởng trần gian như thế nào để kết nối hai , do đó khi URL được yêu cầu trên máy chủ Jetty, dịch vụ Phun sẽ phản hồi lại. Bất kì sự trợ giúp nào đều được đánh giá cao.

Cập nhật: Tôi đang tiến gần hơn để giải quyết vấn đề này, nhờ một chuỗi yêu cầu được nhắc đến bởi Alois Cochard (Tôi đến từ nền web scripting). ... thách thức!). Tôi đã sửa đổi main method của mình để khởi động máy chủ và đọc các tệp Jettyakka configuration nằm trong mẫu bắt đầu. Nó đọc cả những tập tin, nhưng bây giờ tôi nhận được điều này khi tôi điều hướng đến/trên máy chủ Jetty:

HTTP ERROR: 500

Problem accessing /. Reason:

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

Tôi biết tôi thiếu một cái gì đó ngớ ngẩn (và có lẽ rằng tôi nên phá vỡ và sử dụng SBT , nhưng có thể chỉ biên dịch và chạy trong Eclipse, và sau đó làm mới trong trình duyệt, rất đơn giản và hấp dẫn).

Cập nhật # 2: Đã giải quyết được sự cố. Tôi đã không tạo ra một đối tượng WebAppContext, điều đó có nghĩa rằng web.xml chưa bao giờ được đọc, và do đó Akka chưa bao giờ được nạp. This is the revised phương pháp chính hiện đang hoạt động.

+0

Bạn có biết về [sbt-assembly] (https://github.com/sbt/sbt-assembly) không? – AmigoNico

Trả lời

5

Theo phun mẫu, bạn nên thêm đầu nối Spray servlet trong file cấu hình web.xml:

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

Bạn có thể tìm thấy một số thông tin về làm thế nào để cấu hình một cầu cảng standealone sử dụng này nộp ở đây (có tài liệu tham khảo chắc chắn tốt hơn trong tài liệu Netty trực tiếp):

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

BTW, bằng cách sử dụng mẫu phun để làm căn cứ cho l dự án của bạn ooks như một ý tưởng tốt;)

+0

Cảm ơn lời bình luận, Alois. Đã không giải quyết vấn đề của tôi trực tiếp, nhưng nó đã cho tôi đi đúng hướng và cuối cùng tôi đã tìm ra nó. Chúc mừng! –

+0

Bạn được chào đón! –

+0

@JohnBiesnecker, bạn có thể chia sẻ giải pháp của mình không? – tiagoboldt

Các vấn đề liên quan