2012-05-10 35 views
2

在我的項目中,我希望擁有乾淨的URL。因此,我創建像的conf /路由條目:由於播放版本2.0.1中的「conf/routes」文件太大StackOverflowError

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

+0

是什麼的MacBook Air有什麼關係呢? –

回答

4

事實上,出現問題,所以我認爲這對於更好的地方是Play's Lighthouse

在同時你可以解決它快速和容易的一個途徑:

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

然後在country()動作你可以得到countryCode從DB鑑定字符串countryName

編輯:

順便說一句,使用這種方法會更容易使用UTF鏈接,即domain.tld/Росси́я代替domain.tld/Russia

+1

非常感謝您的回答! – sunsations

+0

不客氣:)您會在Play的Lighthous上爲此問題創建一張票嗎? – biesior

+0

完成:https://play.lighthouseapp.com/projects/82401-play-20/tickets/463-stackoverflowerror-because-of-big-confroutes-file-in-play-version-201 – sunsations