结合Akka,Spray和嵌入式Jetty

Joh*_*ker 9 scala jetty akka

我正在尝试创建一个包含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();
}
Run Code Online (Sandbox Code Playgroud)

我在创建HelloService和Boot类时遵循了Spray示例代码,但我对如何连接两者没有任何想法,因此当在Jetty服务器上请求URL时,Spray服务会响应它.任何帮助将非常感激.

更新:由于Alois Cochard提出的调查线程(我来自网络脚本背景,我对Java Web服务的了解一直......具有挑战性!),我已经越来越接近解决这个问题了. ).我已经修改了我的main方法来启动服务器并读取入门模板中的Jettyakka配置文件.它正在读取这两个文件,但是现在当我导航到Jetty服务器上/上时我得到了这个:

HTTP错误:500

访问/的问题.原因:

断言失败:找到0个'喷雾根服务'的参与者,预计只有一个

我知道我错过了一些愚蠢的东西(可能我应该分解并使用SBT,但是能够在Eclipse中编译和运行,然后在浏览器中刷新,是如此简单和吸引人).

更新#2:找出问题所在.我没有创建一个WebAppContext对象,这意味着web.xml永远不会被读取,因此Akka永远不会被加载.这是现在正在修改的主要方法.

Alo*_*ard 5

根据spray-template,您应该在web.xml配置文件中添加Spray servlet连接器:

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

您可以在此处找到有关如何配置standealone jetty以使用此文件的一些信息(netty文档中肯定有更好的引用):

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

顺便说一下,使用喷涂模板作为项目的基础看起来是个好主意;)