初步印象
首先要说 mopaas 相对于自己买云主机DIY 而言,还是简便了太多。对于 java web 应用而言,只需将 war 上传即可启。操作界面简洁明了,可以很快上手,同时也为技术控提供了功能更强的 vmc 控制台工具。 由于提供了免费套餐,个人以为对于一些小项目、内部项目、甚至于测试项目都是一个多快好省的选择。移植团队日志(Teamlog)
团队日志本来追求的是开箱即用,所以内置了 H2 database 数据库。但是对mopaas 这种不支持本地 IO 的平台而言,肯定是不适合的。因此,必须要做移植。1、数据库换成了 mysql,连接池换成了 boneCP。
这一步比较简单,通过 System.getEvn 方法来和 mopaas 平台连接即可。
2、用户上传的头像文件需要切换到 mopaas 的文件服务
这一步也不复杂,同样使用 System.getEvn() 将原来的保存位置调整为 mopaas 的服务即可。
部署团队日志(Teamlog)
由于 mopaas 的操作界面很简洁,经过下面的步骤,很快就完成了部署。
- 申请账号
- 创建应用
- 创建服务
- 绑定服务到应用
- 启动
遇坑以及填坑
1、mopaas 提供的mysql 服务大小写敏感,由于 teamlog 使用的 jdbc 直联方式,所以 sql 没法跑,抛表找不到异常。所以只好黯然调整sql 语句,视力为此下降0.01度。2、由于sql 调整,导致输送到客户端的 json 字段名也做了变化,于是乎js 代码中也要做相应的调整,视力再次下降0.01度。
3、mopaas 的 tomcat 提供的是默认配置,因此对URL 中包含/%2F 字符时不响应。由于 teamlog 在登录超时之后,Server 会redirect 到 login 页,同时会带上用户当前响应的 url,而 Server 端会做 utf8的 encode,这样“/”就会变成"/%2F",所以就无法响应了。
建议
1、为文件服务提供一个管理页面,即可确认文件上传是否成功,又可删除不必要的文件。2、tomcat 在启动时,对JAVA_OPT加入参数:-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true ,以确保对于/%2f 字符的响应。
3、目前对于开发调试的支持不够友好,有些问题需要部署上去后才能发现,这样在正式发布之前,需要反复多次部署和验证。建议后续提供 IDE 集成就更牛了!
4、mysql 不要配置为大小写敏感。