相關參考資料以下: css
補充:由於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的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把數據返回來,作示例。