在cloud foundry上为本身的独立应用添加数据库服务

 相关参考资料以下: css

  1. 如何把独立应用部署到cloud foundry: http://cnblog.cloudfoundry.com/?p=382
  2. mysql数据库服务的介绍:http://docs.cloudfoundry.com/services/mysql/mysql-overview.html
  3. 如何安装vmc: http://docs.cloudfoundry.com/tools/vmc/vmc.html 

补充:由于cloud foundry如今支持的框架不够多,当用到一些暂时没有被cloud foundry支持的框架时,用普通方法部署不上去(好比我用了google guice时,我就部署不上去,不知道有没有其余办法),因此我把app放到tomcat里,做为一个独立应用上传到cloud foundry。可是这样我没办法让cloud foundry自动帮我绑定一个数据库,因此我想了如下办法去链接数据库。 html

我部署上去的应用在这里:http://gentlesummer.cloudfoundry.com java

如下过程用到的是:tomcat6+mysql+jsp。过程的关键是:读取云环境里的VCAP_SERVICES变量(数据格式是JSON),这个变量里包括了链接数据库的关键参数:ip、端口、用户名、密码等。 mysql

如今假设我已经按照上述教程,把一个tomcat应用服务其改装好了,也安装了vmc工具。剩下的步骤是把tomcat push到cloud foundry上,建立一个数据库服务绑定到刚上传的应用上,并想办法取得链接mysql的必要参数。 web

把tomcat push到cloud foundry上

在把tomcat push到cloud foundry上以前,咱们如今tomcat的webapps/ROOT目录里新建一个jsp文件,假设文件名是test.jsp,文件内容大体以下: sql

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'MyJsp.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  <body>
  	<%=java.lang.System.getenv("VCAP_SERVICES") %> 
        <span style="color:red;font-size:50px">test</span>
  </body>
</html>


 body内的内容是关键。 数据库

而后,回到tomcat的基目录,执行命令把tomcat push到cloud foundry上,命令以下图:    tomcat

咱们打开网址测试一下tomcat是否正常:   app

貌似正常,的确是正常!只是大括号里没有内容。下面咱们往大括号里填写内容。 框架

建立一个数据库服务,并绑定到上传的独立应用上

 建立服务和绑定服务的过程以下:                                              

服务绑定成功。咱们再刷新一下刚才打开的那个页面看看:

发现多了不少内容,咱们把黑色字体所有复制下来,拿到这里用JSON格式化工具进行格式化,结果以下:              

{
    "mysql-5.1": [
        {
            "name": "testservice", 
            "label": "mysql-5.1", 
            "plan": "free", 
            "tags": [
                "relational", 
                "mysql-5.1", 
                "mysql"
            ], 
            "credentials": {
                "name": "d742c33a4140445ed990c21d51e0bd63d",   /*数据库名*/
                "hostname": "172.30.48.29",                     /*机器名*/
                "host": "172.30.48.29",                         /*ip地址*/
                "port": 3306,                                   /*端口号*/
                "user": "uviTBqaCTlU5J",                        /*用户*/
                "username": "uviTBqaCTlU5J",                    /*用户名*/
                "password": "pLJKolSPQ33jT"                    /*链接密码*/
            }
        }
    ]
}

这是一段JSON格式的数据,里面包含了数据库服务的一些信息,应用要链接绑定的数据库的话,以上参数已经足够了。固然在实际中,咱们并不须要写个jsp页面把这些JSON数据返回,再人工进行处理。而是直接在应用里写程序,把这些数据解析出来后,就能够链接数据库了。这里只是为了直观而写个jsp把数据返回来,作示例。

相关文章
相关标签/搜索