Routes 如何将A记录路由到Playframework 2.2.x中的特定控制器操作?

Routes 如何将A记录路由到Playframework 2.2.x中的特定控制器操作?,routes,playframework-2.2,Routes,Playframework 2.2,基本上,我希望将所有请求路由到Playframework 2.2.1应用程序中的特定a记录(例如根域记录)和特定控制器操作(controllers.Application.other()) 根据解释,我知道我需要在全局对象中重写onRouteRequest,并在那里执行注入路由 但就我个人而言,我无法让詹姆斯·罗珀的例子发挥作用(我认为这是因为Playframework版本)。被重写的函数如下所示: import .... object Global extends WithFilters(r

基本上,我希望将所有请求路由到Playframework 2.2.1应用程序中的特定a记录(例如根域记录)和特定控制器操作(controllers.Application.other())

根据解释,我知道我需要在全局对象中重写onRouteRequest,并在那里执行注入路由

但就我个人而言,我无法让詹姆斯·罗珀的例子发挥作用(我认为这是因为Playframework版本)。被重写的函数如下所示:

import ....

object Global extends WithFilters(requireSSL, new GzipFilter()) with GlobalSettings {

  override def onRouteRequest(request: RequestHeader): Option[Handler] = {
    (request.method, request.path) match {
      case ("GET", "example.com") => Some(controllers.Application.other)
      case _ => super.onRouteRequest(request)
    }
  }
}

    ....
这将产生:

type mismatch; found : play.mvc.Result required: play.api.mvc.Handler
My controllers.Application.other操作非常基本,仅呈现页面:

public static Result other() {
  return ok(views.html.indexOther());
}
我还尝试将controllers.Application.other更改为controllers.routes.Application.other,但后来它说它需要play.api.mvc.Handler,而不是…调用,我想这是意料之中的

我在Playframework 2.2.1中发现了请求头不断变化的方面,我认为这可以帮助我解决问题,但我不能将我想将请求重定向到的控制器操作作为play.api.mvc.Handler:(


非常感谢您的任何帮助或解释!

回答我自己的问题:我们还没有找到解决方案。我们最终决定使用Scala控制器将全局onRouteRequest覆盖中的自定义路由指向。非常有魅力。尽管混合使用Scala和Java控制器感觉有点痒。

什么是
控制的llers.Application.other
看起来像什么?它只是呈现一个页面并返回结果,仅此而已。我将把它包括在问题中。你在应用程序中混合使用scala和java有什么原因吗?这并没有回答你的问题,而是使用Application.scala和def index={…}我们正在使用许多需要Scala的全局过滤器:(。但据我所知,Play的设计基本上是将Java和Scala结合在一起,对吗?