2

构建一个 Play 2.0 scala 应用程序并将其部署到 Tomcat 上的 ROOT 上下文(据我了解,必须将 Play 应用程序部署到 ROOT 上下文)。此服务器上还有其他 Web 应用程序在不同的上下文中运行,但是在根目录下的 Play 应用程序中,它会拦截每个请求,如果它是不理解的路由则失败。

有什么方法可以让 Play 忽略路由,以便让 Tomcat 继续将其分派到为该上下文注册的 servlet?

谢谢,布赖恩

4

2 回答 2

1

实际上,事实证明这毕竟不是问题。我无意中没有将其他应用程序部署在我正在测试的同一个 tomcat 服务器中(doh!)。一旦我正确部署了它们,Play Framework 应用程序就会获得正确绑定的请求,而其他应用程序会获得在子上下文中为它们绑定的请求。所以,虚惊一场。

于 2012-06-26T21:57:22.430 回答
1

事实上,你有接缝连接到子上下文部署的限制。play2 战争插件直到 Play 2.1 才支持它

可以使用 tomcat conf 欺骗来做你想做的事。我不太了解tomcat,无法为您提供正确的配置。

您仍然可以将 Play 应用程序部署为独立应用程序(未嵌入在 Tomcat 中)并使用前端 HTTP 服务器来处理对正确 HTTP 服务器的反向代理。您必须为每个 HTTP 服务器定义要在其上运行的正确端口,然后配置反向代理以根据域/端口将请求路由到正确的本地端口。我为此使用Nginx。也许Tomcat也可以处理这个问题。

于 2012-06-26T16:38:02.440 回答