构建一个 Play 2.0 scala 应用程序并将其部署到 Tomcat 上的 ROOT 上下文(据我了解,必须将 Play 应用程序部署到 ROOT 上下文)。此服务器上还有其他 Web 应用程序在不同的上下文中运行,但是在根目录下的 Play 应用程序中,它会拦截每个请求,如果它是不理解的路由则失败。
有什么方法可以让 Play 忽略路由,以便让 Tomcat 继续将其分派到为该上下文注册的 servlet?
谢谢,布赖恩
构建一个 Play 2.0 scala 应用程序并将其部署到 Tomcat 上的 ROOT 上下文(据我了解,必须将 Play 应用程序部署到 ROOT 上下文)。此服务器上还有其他 Web 应用程序在不同的上下文中运行,但是在根目录下的 Play 应用程序中,它会拦截每个请求,如果它是不理解的路由则失败。
有什么方法可以让 Play 忽略路由,以便让 Tomcat 继续将其分派到为该上下文注册的 servlet?
谢谢,布赖恩
实际上,事实证明这毕竟不是问题。我无意中没有将其他应用程序部署在我正在测试的同一个 tomcat 服务器中(doh!)。一旦我正确部署了它们,Play Framework 应用程序就会获得正确绑定的请求,而其他应用程序会获得在子上下文中为它们绑定的请求。所以,虚惊一场。
事实上,你有接缝连接到子上下文部署的限制。play2 战争插件直到 Play 2.1 才支持它
可以使用 tomcat conf 欺骗来做你想做的事。我不太了解tomcat,无法为您提供正确的配置。
您仍然可以将 Play 应用程序部署为独立应用程序(未嵌入在 Tomcat 中)并使用前端 HTTP 服务器来处理对正确 HTTP 服务器的反向代理。您必须为每个 HTTP 服务器定义要在其上运行的正确端口,然后配置反向代理以根据域/端口将请求路由到正确的本地端口。我为此使用Nginx。也许Tomcat也可以处理这个问题。