原本用得好好的openshift被墙了,无奈只能找过一个免费的空间。同窗推荐appfog,appfog的确是一个很好用的空间,支持几乎全部主流的技术。我本身喜欢写点java,恰好我就开始使用了。appfog有一个ruby开发的工具af很好地管理本身的app。写好了app直接使用af上传也是很是的方便。web应用数据库固然少不了,我本身一直比较喜欢使用jdbc链接数据库。以前本身写的一个爬虫程序搞了一个音乐的数据,也在openshift上面搞过一个简单的音乐网站。我一开始就打算能不能直接把本身在openshift上面的app直接迁移过来。代码迁移是很是方便的,数据库也能够经过文件的形式进行导入和导出。我遇到的问题是数据库链接的方式不一样,在openshift上面数据库的链接是采用硬编码的方式来输入数据库信息的,而在appfog上面则是采用一个动态的变量,这个变量实际上是一个json数据。java
菜鸟一个,一开始对json数据怎么解析都不是很清楚。花了一点功夫去研究json数据的解析。json解析的包须要本身去json的官网弄一个。我去网上下载了一个jar包,开了了尝试之旅。其实json的解析是很简单的,只是本身不熟悉因此花了一些时间。后来json也解析出来了,可是一直链接不上去。上网google和baidu了好久,听有人说是mysql connector版本的问题,也就换了好几个connector也是链接不上。我一度怀疑又是防火墙的问题。。。纠结了好久,我也调试了肯定json数据解析没有问题。后来仔细看代码原来是本身的代码的确出了一点弱智的问题=。=。这里贴一下个人解析代码,本身测试过没有问题,但愿可以帮助到一样适用appfog的一些朋友:mysql
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服务也是很是的方便。web