StackOverflowError,因为Play版本2.0.1中有大的“conf / routes”文件

时间:2012-05-10 20:53:22

标签: playframework playframework-2.0

在我的项目中,我想拥有干净的网址。因此,我在conf / routes中创建条目,如:

GET   /switzerland  controllers.Application.country(countryCode = "CH")
GET   /germany      controllers.Application.country(countryCode = "DE")
...
GET   /:countryCode  controllers.Application.country(countryCode: String)

我的列表超过130个条目并创建一个StackOverflowError。任何有关如何防止错误的帮助都非常感谢。也许这个问题也有更优雅的解决方案。

Java的版本:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04-415-11M3646)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01-415, mixed mode)

非常感谢你的帮助!

我创建了一个小样本项目,以重现它(至少在我的Mac上): https://github.com/sunsations/play_2.0.1_routes_stackoverflowerror

1 个答案:

答案 0 :(得分:4)

确实发生了问题所以我认为更好的地方是Play's Lighthouse

与此同时,您可以通过一条路线快速轻松地解决问题:

GET   /:countryName    controllers.Application.country(countryName : String)

然后在country()操作中,您可以从字符串countryCode标识的数据库中获取countryName

编辑:

顺便说一句,使用这种方法,使用UTF链接会更容易,即domain.tld/Росси́я而不是domain.tld/Russia