2012-01-26 31 views
0

當我們的應用從1.3.7遷移到2.0.0時,出現了一個奇怪的問題。 我們的應用呈現被瀏覽器視爲UTF-8編碼的HTML。從Grails 1.3.7遷移到2.0.0時的編碼問題

當我們進入一個「E」字母(代碼點:00E9/UTF8十六進制字節:C3 A9)在輸入,並將其發送到控制器,我們得到一個C3 83 C2 A9

請求以及編碼(%C3%A9),但我們的params.field返回我剛纔所說的

我們的1.3.7 Grails應用程序在同一臺機器上運行良好。

我們已經看到this problem這似乎是關閉和升級webxml插件1.4.1,但沒有任何改變。

我們發現Spring-Security-Core web.xml篩選器在生成的web.xml中的CharacterEncodingFilter之前聲明,並試圖刪除該插件。它沒有幫助。

我們已經建立了使用Grails 2.0具有相同配置的的Hello World應用程序,但它的工作原理

有誰知道會發生什麼?

這裏是我們application.properties

#Grails Metadata file 
#Thu Jan 26 17:50:12 CET 2012 
app.grails.version=2.0.0 
app.name=plugin-web 
app.servlet.version=2.4 
app.version=0.1 
plugins.hibernate=2.0.0 
plugins.joda-time=1.3.1 
plugins.resources=1.1.5 
plugins.spring-security-core=1.2.7.1 
plugins.tomcat=2.0.0 

回答

1

好了,這似乎是一個計時問題

當我們遷移的項目2.0.0,Grails的安裝webxml 1.4.0插件我們的項目。從那以後,即使升級到1.4.1版本並且多次清理了項目,我們也不可能使項目按預期工作。

因此,我們回到備份的1.3.7版本並升級到grails 2.0。然後grails安裝了webxml 1.4.1插件,並且一切正常。請注意,降級到1.4.0版本使問題再次出現

現在一切正常。我不知道在哪裏grails-2.0.0將這些鏈接緩存到1.4.0版本,因爲我們清理了項目,rm -rf'ed .m2,.ivy2,.groovy-ivy-cache(Everything ... There只是在文件系統上留下的rm命令:-D)但這不再是我的問題