在新浪雲新手指南里有部署java的示例,可是對一個新手來講不免會有一些地方犯錯,折騰了好長時間才把本身的java web部署到了新浪雲。這裏主要寫一些我遇到的問題與第一次使用新浪雲的朋友分享一下。java
首先須要註冊用戶拿到500雲豆,實名認證還能夠再拿2000雲豆,而後註冊java web應用。注意了,每註冊一個應用都要扣100雲豆的,不要註冊着玩,俺就是一不當心兩百雲豆沒了。mysql
你能夠建立一個最簡單的測試應用,假設你的應用名字叫testSinaApp,經過web頁面上傳war包會自動建立版本1,那麼你的應用地址就是http://testSinaApp.sinaapp.com或http://1.testSinaApp.sinaapp.com,新浪雲提供的web服務器是jetty,先確保你的程序在jetty下能正常運行,這樣你應該就能夠訪問了。若是不行的話,查看一下jvm日誌是什麼緣由,注意你的sdk版本必定是1.6或如下版本才行。若是不行那多是網絡緣由了,稍等一會再試一下。web
jar文件須要注意一下,servletapi.jar是不須要上傳的,jetty裏已經有了,跟tomcat裏的不太同樣,有些方法是沒有的。若是你用log4j的話,千萬別把log4j.jar傳上去了,若是傳上去了那你怎麼也找不出緣由。新浪只是說爲了減小程序所佔空間最好不要把新浪已經有的jar往上傳,可是它沒說傳上去會有問題。這就有點扯淡了。sql
數據庫方面相信也會遇到不少的問題,就是鏈接池的管理,新浪雲說mysql的空閒時間設置的是30秒,也就是說一個鏈接若是30秒沒用的話就會被新浪的MySQL服務器斷開。可是咱們寫的程序的鏈接池卻還保留着這些被服務器拋棄的鏈接,當過一小段時間咱們再進行查詢的時候,會從鏈接池裏取出一個鏈接,其實這個鏈接有可能已通過期了,因此會出現查詢失敗的狀況。新浪已經提示了, 「此外須要特別注意的就是MySQL服務在拿到鏈接30秒內未作操做將會自動丟失,因此在配置數據庫鏈接池時候特別須要注意如maxIdleTime等配置的大小」。我用的c3p0鏈接池,查了好多資料,對一些配置也沒怎麼弄明白,網上說的亂七八糟。其實這裏很簡單,直接在hibernate.cfg.xml中配置,添加下面兩行數據庫
<property name="hibernate.c3p0.automaticTestTable">c3p0_testtable</property>
<property name="hibernate.c3p0.idle_test_period">8</property>api
根據你的須要再配置一下最大最小鏈接數量便可,根本不須要配置什麼c3p0.validate,c3p0.timeout,c3p0.testConnectionOnCheckout,c3p0.testConnectionOnCheckin屬性,配了反而形成性能降低。automaticTestTable表明c3p0會自動在你的數據庫裏插入一個查詢用的表,再次運行程序的時候,你就會發現你的數據庫裏多了一個表,這個表就不要管了,只是c3p0按期查詢用。那多長時間查一次呢?idle_test_period就表明多長時間查詢一次(單位是秒),查詢事後會出現什麼現象呢,查詢事後就至關於全部的空閒鏈接的空閒時間又開始從0計時,由於這至關於你實際地查詢了一次數據庫。這個時間在多長時間爲好呢,固然是越大越好,可是又不能超過新浪說的30秒。爲何不設置爲28秒呢,通過個人實際測試發現並不像新浪說的服務在拿到鏈接30秒內未作操做將會自動丟失,而是在10內就會丟失,這個你們也能夠去驗證一下。因此配置成8秒比較保險,在你的實驗過程當中你能夠將你本地的數據庫wait_timeout改爲30秒模擬一下新浪雲的服務。tomcat
我只是用了一點最簡單的,後邊接觸到其餘的再做更新。服務器
=======================================================網絡
如今sae改動較大,本文已通過時,除了配置idle_test_period外,也能夠配置maxIdleTime小於10.app