java編譯器版本問題
java版本要求是java6,太高的版本會報錯。這個可以在eclipse裏面設置編譯器版本。
war包問題
war包必須和應用同名。servlet-api.jar, mysql.jar這些公用的jar文件不要上傳,以免版本衝突。(本人在開發中把所有jar包從war文件中刪除)
contextPath問題
因爲這個問題影響cookie和session所以比較重要。
通過二級域名訪問後獲取的getContextPath(),永遠是/version/appname的固定值,與請求的URL無關。
getRequestURI()獲取的結果不包含appname,所以URI不包含contextPath這個一般的web容器不一樣。
cookie問題
cookie路徑必須/appname開頭,這是爲了安全考慮,所以以後訪問的url也要帶上下文路徑。
session問題
分佈式session需要加<distributable/>標籤。 SAE session經常會丟失,我後來自己又用memcache保存了一次以減少丟失機率。
另外session是基於cookie實現的,如果有保存不了很可能也是路徑問題。
mysql問題
mysql鏈接10s超時。我是自己DIY的線程池,所以使用前要檢查連接是否超時就好了。使用其他線程池時一定要注意。
storage問題
storage問題,wrap的file系列接口,每次上傳的文件都錯誤。可能時文件太大了,分多次寫入流的緣故。先存儲到臨時文件,再用storage接口上傳可以解決。
log問題
開始時我找不到系統log查看的地方。系統打印的日誌在HTTP日誌,notice和warning中。
memcache
memcache基於請求初始化
Font字體問題
Font的幾個邏輯字體都找不到,後來沒辦法找了一個字體文件打包到war包裏面了。
getServletContext問題
這個方法會報錯,no such method,後來只能用ClassLoader來讀取配置文件了。
代碼更新問題
代碼更新後需要手動重啓jvm,要不然有時候靜態變量沒有更新。