1. contextPath 问题
在 SAE 环境下 contextPath 是 /1/xxx 而非我们通常的 /xxx 。用 #jfinal# 的得注意了: JFinalFilter 得修改一下注释掉下面 2 行:
if (contextPathLength != 0)
target = target.substring(contextPathLength);
2. session 问题
如果你用了 #jfinal# 中的 SessionInViewInterceptor.java,不好意思,在SAE环境下也得改改。(也算是 jfinal一点小bug吧 )
for (Enumeration<String> names=hs.getAttributeNames(); names.hasMoreElements();) {
String name = names.nextElement();
// 注意这里, hs.getAttribute(name) 返回的可能是 null,需要判断,否则下面没办法put进去
session.put(name, hs.getAttribute(name));
}
3. 不支持 JMX, 所以 #Druid# 连接池用不了(我用的最新的), 现在用 c3p0, 也有类似的 warning, 还好不影响使用。
4. SAE 限制了MySQL 链接最大空闲时间是 10s, 所以得设置 c3p0 的 maxIdleTime = 10s,否则会出现类似下面的异常(500)
com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception
不是jdbc驱动版本的问题,也不是主从库读写的问题。
5. 暂时就这些,有了再补, 反正就是折腾了一天,感觉不方便。
----------------------------------------------优雅的分割线 ----------------------------------------------------------
截图留个纪念