SAE 部署遇到的问题

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.  暂时就这些,有了再补, 反正就是折腾了一天,感觉不方便。


----------------------------------------------优雅的分割线 ----------------------------------------------------------

截图留个纪念
SAE 部署遇到的问题_第1张图片


SAE 部署遇到的问题_第2张图片

你可能感兴趣的:(sae)