Java 在Web服务器上部署akka
我有一个基于spray+akka的应用程序。使用本指南: 它解释了这个例子: 这个应用程序运行得很好。但是,当我试图在Web服务器上部署时,我没有找到一种方法 我尝试使用xsbt web插件在Tomcat上部署,得到以下输入: [信息]正在启动服务器。。。正在为目标/webapp添加上下文 启动服务Tomcat启动Servlet引擎: Apache Tomcat/7.0.34 org.Apache.catalina.startup.ContextConfig getDefaultWebXmlFragment信息:未找到全局web.xml org.apache.coyote.AbstractProtocol开始信息:开始 ProtocolHandler[“http-nio-8080”] 但是Tomcat会返回404来处理所有请求 有人知道如何在Tomcat上部署spray akka应用程序吗?解决了这个问题 这是使xsbt插件与spray应用程序一起工作所需的:Java 在Web服务器上部署akka,java,scala,akka,spray,xsbt-web-plugin,Java,Scala,Akka,Spray,Xsbt Web Plugin,我有一个基于spray+akka的应用程序。使用本指南: 它解释了这个例子: 这个应用程序运行得很好。但是,当我试图在Web服务器上部署时,我没有找到一种方法 我尝试使用xsbt web插件在Tomcat上部署,得到以下输入: [信息]正在启动服务器。。。正在为目标/webapp添加上下文 启动服务Tomcat启动Servlet引擎: Apache Tomcat/7.0.34 org.Apache.catalina.startup.ContextConfig getDefaultWebXmlF
根路径
spray.servlet {
boot-class = "com.sysgears.example.boot.Boot"
root-path = "/rest"
request-timeout = 10s
}
boot
更改为扩展webBoot
:class Boot extends WebBoot {
// create an actor system for application
val system = ActorSystem("rest-service-example")
// create and start rest service actor
val serviceActor = system.actorOf(Props[RestServiceActor], "rest-endpoint")
}
<listener>
<listener-class>spray.servlet.Initializer</listener-class>
</listener>
<servlet>
<servlet-name>SprayConnectorServlet</servlet-name>
<servlet-class>spray.servlet.Servlet30ConnectorServlet</servlet-class>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SprayConnectorServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
spray.servlet.Initializer
喷雾器
spray.servlet.Servlet30连接器servlet
看这个问题,spray servlet自动计算tomcat上的上下文路径似乎有问题,所以您需要手动设置:您是否尝试过在应用程序.conf
中更改spray.servlet.root路径
?是的,这很有帮助,谢谢。我现在的问题是在网络中定义什么。xml@griffonvulture-我可以问一下为什么要在web服务器(容器)上部署Spray吗?Spray本身是无容器的,可以作为可运行的jar文件部署。你考虑过这个选择吗?您还可以将您的流量从web服务器重定向到Spray实例。也许您应该尝试从“官方”模板设置您的应用程序,该模板已包含所有这些文件,并使用最新版本的spray:)
<listener>
<listener-class>spray.servlet.Initializer</listener-class>
</listener>
<servlet>
<servlet-name>SprayConnectorServlet</servlet-name>
<servlet-class>spray.servlet.Servlet30ConnectorServlet</servlet-class>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>SprayConnectorServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>