1) 利用Ant進行遠程部署
<scp file = “${backup.dir}”/${DSTAMP}${TSTAMP}/${portal.deploy.war.file}
todir = “${username}:${password}@${address}:/usr/local/jboss/server/default/deploy”
trust = “true”/>
<scp file = “${backup.dir}”/${DSTAMP}${TSTAMP}/${manager.deploy.war.file}
todir = “${username}:${password}@${address}:/usr/local/jboss/server/default/deploy”
trust = “true”/>
</target>
trust=”true” 要附加上,否則會傳輸失敗
2) 事務問題
項目需求的步驟
a) 應用端輸入數據,根據數據生成XML表達的層次數據,傳輸給Servlet處理
b) 解析生成的XML
c) database中的表中清除當前數據
d) 解析XML的結構,插入一個Node到database的表
若在d)步驟產生exception,這時由於c)步驟已經將數據全部清空,可能造成錯誤。因此要設置connection的自動提交事務爲false 【connection.setAutoCommit(false)】。一旦在某步驟中產生異常,在異常處理的時候回滾數據【connection.rollback()】connection.setAutoCommit(false);
//cmsPersistencer.cleanTableData(connection);
...
//cmsPersistencer.insertByXML(xmlString);
connection.commit();
}catch(Exception exception)...{
try...{
connection.rollback();
}catch(SQLException sqlException)...{
throw new Exception(sqlException);
}
throw exception;
}
3) CSV問題
需求文檔常常需要以Word的形式來表達,而某些數據在word文檔中又以表格存在。爲了方便程序處理,可以將Word中的表格複製到Excel中,然後另存爲CSV文件。這時再根據CSV的結構特點,完成一個由CSV到XML轉化的工具函數。這樣我們就可以方便的處理需求的變化,而無需進行大量的改動。
我們的項目中的轉換過程:
Word ---> Excel ---> CSV ---> XML--->js
4) JBoss應用部署問題
將一個應用部署爲服務器上的根時,有2種方法
a) 將應用複製到/jboss/server/default/deploy下,在應用的/WEB-INF目錄下添加一個名爲jboss-web.xml的文件。文件內容爲:
<context-root/>
</jboss-web>
b) 將應用複製到/jboss/server/default/deploy/jboss-web.deployer/下,把原來的Root.war目錄改名,並將自己的應用改爲ROOT.war即可。
可能的問題如下:
a)使得應用對服務器部署不通用或存在冗餘的文件
b)設置<load-on-startup>1</ load-on-startup >的servlet若啓用數據池進行數據庫連接,這時數據庫連接池沒有準備好,因此會產生服務器啓動失敗。
5) 需求變更和數據初始化問題
項目應用開發過程中常常遇到比較麻煩的問題是需求的變更。而比這更麻煩的是在進行需求變更開發的過程中,客戶要求在現有的基礎上調整現有的數據。因此在開發過程中基線應至少保留以下內容:
a) DB的SQL或建模工具生成的DB設計文件
b) 開發源代碼或工作區
c) 初始化數據
d) 初始化數據的腳本
e) 編譯打包好的應用
說明文檔,包括時間、環境說明(例如,當前的文件編碼格式等)、測試結果(或存在的BUG)
6) 項目初始化問題
項目在部署的過程中,常常需要對數據庫的必要數據進行初始化。有如下幾種方法進行數據初始化:
a) 使用應用程序進行初始化
通過Java進行JDBC連接插入數據
b) 使用SQL腳本進行初始化
通過執行insert語句插入數據
c) 使用備份數據進行初始化
通過進行數據庫備份和恢復進行數據初始化,例如pg_dump
d) 使用數據庫客戶端工具
通過數據庫客戶端工具進行數據備份,然後在備份回存,例如pgAdmin