我正在尝试创建一个包含 Akka、Spray 和 Jetty 的独立 JAR。理想情况下,我将整个应用程序分发到该单个文件中,而无需任何外部文件。
我了解如何创建嵌入式 Jetty 服务器实例
def main(args: Array[String]): Unit = {
val server = new Server(9012);
server.start();
server.join();
Thread.sleep(2000);
server.stop();
}
并且我在创建 HelloService 和 Boot 类时遵循了 Spray 示例代码,但我不知道如何将两者连接起来,因此当在 Jetty 服务器上请求 URL 时,Spray 服务会响应它。任何帮助将非常感激。
更新:我离解决这个问题越来越近了,这要归功于 Alois Cochard 提出的询问线索(我来自网络脚本背景,并且了解 Java Web 服务一直......具有挑战性! )。我已经修改了我的主要方法来启动服务器并读取入门模板中的Jetty和akka 配置文件。它正在读取这两个文件,但是现在当我导航到 Jetty 服务器上的 / 时,我得到了这个:
HTTP 错误:500
访问 / 时出现问题。原因:
断言失败:找到 0 个 id 为“spray-root-service”的演员,预计只有一个
我知道我错过了一些愚蠢的东西(可能我应该分解并使用 SBT,但是能够在 Eclipse 中编译和运行,然后在浏览器中刷新,是如此简单和吸引人)。
更新#2:找出问题所在。我没有创建 WebAppContext 对象,这意味着 web.xml 永远不会被读取,因此 Akka 永远不会被加载。这是修改后的主要方法,现在正在运行。