SAE 部署遇到的问题

原创
2014/06/26 21:15
阅读数 624

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
打赏
0
4 收藏
分享
加载中
我是用S2SH,部署上去后,拿不到session,本地都可以的!是不是不完全支持hibernate
2015/12/01 09:47
回复
举报
子木007博主

引用来自“ni_cu”的评论

我用的是jfianl1.8你的第二个session的那个是什么意思?没看懂?
如果用了 SessionInViewInterceptor 拦截器,就会抛出一个 NullPointerException。 仅此而已。
2014/11/27 12:09
回复
举报
我用的是jfianl1.8你的第二个session的那个是什么意思?没看懂?
2014/11/27 11:45
回复
举报
更多评论
打赏
3 评论
4 收藏
0
分享
返回顶部
顶部