JavaWeb:SSH項目在Sinaapp上的部署及網域名稱的綁定

來源:互聯網
上載者:User

標籤:

1. 首先在SAE中建立一個新應用

建立應用時,需要我們填寫次層網域,比如XXXXXX。在“開發語言”一欄中,選擇Java,然後選擇對應的JVM層級。

2.查看應用資訊
我們可以在“應用首頁”查看當前應用的配置,如:


圖1 應用的資訊

其中,我們一定要注意,這裡面的Access Key和Secret Key這兩項,訪問MySQL的時候,它們分別是使用者名稱和密碼

3.管理MySQL
在服務管理項,選擇MySQL子項,我們可以對MySQL進行管理,最簡單的就是使用PHPMyAdmin對資料庫進行管理,2


圖2

點進去之後,我們就可以管理MySQL了,如所示,主要我們的MYSQL的地址和連接埠號碼,還有資料庫的名稱。資料庫的名稱是app_XXXXXX,其中XXXXXX是app的名稱。然後,我們就可以在當前資料庫下建立資料庫表了。


圖 3

我們可以使用SQL,建立對應的資料庫表,比如,本次SSH項目對應的資料庫表為:

/*Navicat MySQL Data TransferSource Server         : localhost_3306Source Server Version : 50027Source Host           : localhost:3306Source Database       : sshmysqlTarget Server Type    : MYSQLTarget Server Version : 50027File Encoding         : 65001Date: 2015-01-11 10:43:42*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for bbscomment-- ----------------------------DROP TABLE IF EXISTS `bbscomment`;CREATE TABLE `bbscomment` (  `uuid` varchar(36) NOT NULL,  `messageid` varchar(32) NOT NULL,  `username` varchar(32) NOT NULL,  `content` varchar(512) NOT NULL,  `touser` varchar(32) default NULL,  `agree` int(8) default NULL,  `disagree` int(8) default NULL,  `date` varchar(40) NOT NULL,  `top` int(8) default NULL,  `Reserve1` varchar(128) default NULL,  `Reserve2` varchar(128) default NULL,  PRIMARY KEY  (`uuid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for bbsmessage-- ----------------------------DROP TABLE IF EXISTS `bbsmessage`;CREATE TABLE `bbsmessage` (  `uuid` varchar(36) NOT NULL,  `username` varchar(32) NOT NULL,  `content` varchar(512) NOT NULL,  `imageheadurl` varchar(256) default NULL,  `agree` int(8) default NULL,  `disagree` int(8) default NULL,  `share` int(8) default NULL,  `address` varchar(40) default NULL,  `date` varchar(40) NOT NULL,  `top` int(8) default NULL,  `phonemodel` varchar(32) default NULL,  `Reserve1` varchar(128) default NULL,  `Reserve2` varchar(128) default NULL,  PRIMARY KEY  (`uuid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for student-- ----------------------------DROP TABLE IF EXISTS `student`;CREATE TABLE `student` (  `id` varchar(36) NOT NULL,  `name` varchar(32) NOT NULL,  `course` varchar(64) NOT NULL,  `score` int(11) NOT NULL,  `remarks` varchar(512) default NULL,  PRIMARY KEY  (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ------------------------------ Table structure for userinfo-- ----------------------------DROP TABLE IF EXISTS `userinfo`;CREATE TABLE `userinfo` (  `uuid` varchar(36) NOT NULL,  `username` varchar(32) NOT NULL,  `password` varchar(16) NOT NULL,  `imageheadurl` varchar(256) default NULL,  `level` int(8) NOT NULL,  `registertime` varchar(40) NOT NULL,  `Reserve1` varchar(128) default NULL,  `Reserve2` varchar(128) default NULL,  PRIMARY KEY  (`uuid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.部署SSH項目
在部署之前,我們需要注意的是:
4.1.資料庫的配置
主要是url和使用者名稱密碼的配置:

jdbc.mysql.url=jdbc:mysql://w.rdc.sae.sina.com.cn:3307/app_XXXXXXjdbc.mysql.username=Access Keyjdbc.mysql.password=Secret Key

4.2.資料庫連接的配置
第一次上傳代碼之後,出現“Could not open Hibernate Session for transaction”錯誤,為瞭解決這個問題,我們需要在資料庫連接池中添加配置資訊

<!--建立mysql jdbc資料來源 --><bean id="c3p0dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="${jdbc.mysql.driver}" /><property name="jdbcUrl" value="${jdbc.mysql.url}" /><property name="user" value="${jdbc.mysql.username}" /><property name="password" value="${jdbc.mysql.password}" /><property name="testConnectionOnCheckin" value="true" /><property name="testConnectionOnCheckout" value="true" /></bean>

這裡需要注意的就是testConnectionOnCheckin和testConnectionOnCheckout


另外,還有一個需要注意的是sessionFactory,
增加
<prop key="hibernate.autoReconnect">true</prop>
配置
例如:

<bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="c3p0dataSource" /><property name="hibernateProperties"><props>    <prop key="hibernate.autoReconnect">true</prop><prop key="hibernate.show_sql">false</prop><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="current_session_context_class">thread</prop></props></property>...</bean>

4.3.還需要注意的是,Hibernate的.hbm.xml檔案,如果是MyEclipse自動產生的,它會有一個叫做“catalog”的欄位,
最好將該欄位刪除。因為本地調試的資料庫名稱和SAE上的資料庫名稱有可能不一樣。


5.打包上傳
上述配置完成之後,使用MyEclipse,將項目Export成.war包,名稱與app的名稱一致,比如XXXXXX.war,然後上傳到SAE空間


圖 4

過一段時間(半分鐘),我們就可以訪問XXXXXX.sinaapp.com來查看部署的項目是否能夠成功運行了。

至此,這個SSH項目就在sinaapp上部署成功了。


6.網域名稱的綁定

新浪上的網域名稱為次層網域,那我們怎麼將次層網域與我們購買的頂層網域綁定呢?

我一般在萬網買網域名稱,買完網域名稱之後,需要個人身份的登記和認證,然後就可以解析了。

首先在SAE中“應用首頁”,獨立網域名稱中,點擊“綁定”獨立網域名稱:輸入需要綁定的網域名稱,然後會彈出如下對話方塊:


圖 5

注意,被圈起來的內容,是我們在網域名稱解析中用到的。

開啟萬網的解析頁面,根據SAE的提示,在解析頁面添加正確的CNAME資訊和A記錄資訊。

比如,下面是我的某個網域名稱的解析:


網域名稱的綁定一般1分鐘左右生效。


未經允許,不得用於商業目的


JavaWeb:SSH項目在Sinaapp上的部署及網域名稱的綁定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.