本来用得好好的openshift被墙了,无奈只能找过一个免费的空间。同学推荐appfog,appfog的确是一个很好用的空间,支持几乎所有主流的技术。我自己喜欢写点java,刚好我就开始使用了。appfog有一个ruby开发的工具af很好地管理自己的app。写好了app直接使用af上传也是非常的方便。web应用数据库当然少不了,我自己一直比较喜欢使用jdbc连接数据库。之前自己写的一个爬虫程序搞了一个音乐的数据,也在openshift上面搞过一个简单的音乐网站。我一开始就打算能不能直接把自己在openshift上面的app直接迁移过来。代码迁移是非常方便的,数据库也可以通过文件的形式进行导入和导出。我遇到的问题是数据库连接的方式不同,在openshift上面数据库的连接是采用硬编码的方式来输入数据库信息的,而在appfog上面则是采用一个动态的变量,这个变量其实是一个json数据。

  菜鸟一个,一开始对json数据怎么解析都不是很清楚。花了一点功夫去研究json数据的解析。json解析的包需要自己去json的官网弄一个。我去网上下载了一个jar包,开了了尝试之旅。其实json的解析是很简单的,只是自己不熟悉所以花了一些时间。后来json也解析出来了,但是一直连接不上去。上网google和baidu了很久,听有人说是mysql connector版本的问题,也就换了好几个connector也是连接不上。我一度怀疑又是防火墙的问题。。。纠结了很久,我也调试了确定json数据解析没有问题。后来仔细看代码原来是自己的代码的确出了一点弱智的问题=。=。这里贴一下我的解析代码,自己测试过没有问题,希望能够帮助到同样适用appfog的一些朋友:

String databaseInfo = java.lang.System.getenv("VCAP_SERVICES");

        if (databaseInfo != null) {
try {
JSONObject jsonObject = new JSONObject(databaseInfo);
JSONObject mysqlObj = jsonObject.getJSONArray("mysql-5.1").getJSONObject(0);
JSONObject credentials = mysqlObj.getJSONObject("credentials"); this.ServerHost = credentials.getString("hostname");
this.port = String.valueOf(credentials.getInt("port"));
this.DatabaseName = credentials.getString("name");
this.userName = credentials.getString("username");
this.passWord = credentials.getString("password"); } catch (JSONException ex) {
Logger.getLogger(ConnectionManager.class.getName()).log(Level.SEVERE, null, ex);
}
}

  最后推荐大家使用af 的tunnel功能,可以使用本地mysql工具连接appfog上面的mysql服务也是非常的方便。

最新文章

  1. 【跟着子迟品 underscore】Array Functions 相关源码拾遗 & 小结
  2. 一周试用yii开发一个带各种该有功能的web程序(三)
  3. MUI功能列表
  4. 使用Spring时遇到的bug及解决
  5. Android 每天定时提醒功能实现
  6. Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamPath,getFilesDir,openFileInput, ...)
  7. php数组分页类
  8. BZOJ 1620: [Usaco2008 Nov]Time Management 时间管理( 二分答案 )
  9. Form.Close跟Form.Dispose
  10. 部署WEB应用的三种方式[转]
  11. 初识Python装饰器
  12. Android图表库MPAndroidChart(十一)——多层级的堆叠条形图
  13. CSS(七)
  14. Elasticsearch 学习总结 - 相关配置补充说明
  15. a标签的使用
  16. static和fianl修饰变量的区别
  17. def 函数的不定长函数
  18. Selenium和firefox兼容性问题
  19. Servlet3.0 multipart 文件上传技术
  20. Zabbix点滴记录

热门文章

  1. UVA - 11986 Save from Radiation
  2. linux内核源码目录(转)
  3. HDU 5001 概率DP || 记忆化搜索
  4. [WPF]程序全屏
  5. 10个实用的PHP正则表达式汇总
  6. 转载:Eclipse+Spket插件+ExtJs4修改版提供代码提示功能[图]
  7. 找不到方法: Int32 System.Environment.get_CurrentManagedThreadId() .
  8. 关于ios的autoLayout的一些简单介绍以及使用方法
  9. PHP调用Webservice实例
  10. Apache无法启动解决 the requested operation has failed