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 Jetty và akka 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.
Bạn có biết về [sbt-assembly] (https://github.com/sbt/sbt-assembly) không? – AmigoNico