2009年9月29日 星期二

JavaFX結合 JDBC, Servlet, Swing, Google Map及動態產生比例圖 (3):部署設定及應用

推文
功能:同第一篇

說明:這一篇主要是說明如何將程式部署到Application Server,以及程式如何運作,
產生的檔案置於何處,以及如何以瀏覽器呈現(Applet),或是當成桌面應用程
式,或是桌面Applet,這當然是以Java Web Start方式呈現,及javafx 的jnlp
script的寫法,及jar檔的簽署認證等等。

1.將我附上的壓縮檔jdbcfxSalary.zip解壓縮後,以netbeans開啟,jdbcfx及salary這兩
個porject,選meun,File--->Open Project,選到目錄.\jdbcfxSalary\netbeans_project\,
分別在目錄.\jdbcfxSalary\netbeans_project\jdbcfx及.\jdbcfxSalary\netbeans_project\salary
,分別開啟,如下圖

請確定你已設定好 Tomcat Server,參考第一篇。

2.開啟project後,他會自動把我有用到的lib加入(參考第一篇步驟8及第二篇步驟7),
如你有修改檔案,按一下jdbcfx project built來產生最新的前端要部署的jdbcfx.jar檔,
會在這個位置,.\jdbcfxSalary\netbeans_project\jdbcfx\dist\jdbcfx.jar,而按一下salary
project built會產生最新的後端部署的salary.war檔,會在這個位置,
.\jdbcfxSalary\netbeans_project\salary\dist\salary.war,如下圖


3.然後資料庫的部分SQL Server 2000在你已建立的資料庫的管理介面執行我附上的
salary_table.sql指令,在目錄.\jdbcfxSalary\salary_table.sql,這個主要是建立資料表
salary,欄位有id,name,dep,address,salary,mapfile。

4.需修改yj.servlet.utility.DB_Utility.java裡的變數
我的資料庫伺服器是localhost,而資料庫名稱是purchase,
String connUrl = "jdbc:jtds:sqlserver://localhost:1433/purchase";
String userName = "sa";(修改成你的帳號)
String password = "123456";(修改成你的密碼)

5.簽署jar檔,先產生加密Key,命令如下
keytool -genkey -keystore salaryKeystore -alias salary,執行後會設密碼及一些認證資訊
你只要依序輸入即可,我密碼是設123456,預設會產生加密檔案到
C:\Documents and Settings\使用者名稱\salaryKeystore,我們將他copy到目錄位置下,
.\jdbcfxSalary\netbeans_project\salary\web\salaryKeystore,因我會有個bat命令檔放在
.\jdbcfxSalary\copylibAndgenKey.bat這個檔主要是用我們產生的key做簽署前端會
下載的library,cos.jar及jdbcfx.jar,
當使用者下載時會出現認證框框,如使用者信任或執行,即可執行更多
客戶端權限的動作。

6.上面步驟完成後,依序執行下列部署步驟:
a:build jdbcfx project產生最新檔.\jdbcfxSalary\netbeans_project\jdbcfx\dist\jdbcfx.jar
b:excute .\jdbcfxSalary\copylibAndgenKey.bat
c:build salary project
d:然後copy .\jdbcfxSalary\netbeans_project\salary\dist\salary.war 到你對外發佈的
Tomcat Server 的根目錄\webapps目錄底下,如你已啟動 Tomcat Server,會自動
在.\webapps目錄下產生目錄salary,即表成功部署。

7.前端Java Web Start啟動方式的jnlp script放在
Tomcat Server 的根目錄\webapps\salary目錄底下的檔案,

Browser Applet啟動方式需下面兩個檔案
jdbcfx_applet_browser.html
jdbcfx_browser.jnlp

Java Web Start (for Application) 啟動方式需下面兩個檔案
jdbcfx_desktop.html
jdbcfx_desktop.jnlp

Java Web Start (for Applet) 啟動方式需下面兩個檔案
jdbcfx.html
jdbcfx.jnlp

產生的長條圖跟圓餅圖也放在Tomcat Server 的根目錄\webapps\salary目錄底下
bar.png,pie.png這兩的檔案會動態依你輸入的查詢條件改變 的比例圖

google map 的 template檔也在Tomcat Server 的根目錄\webapps\salary目錄底下
map_temp.html,這個檔案第五行有個key=的參數值是你要到google map api去申請
key,請到底下網址去申請(以真實domain name or ip而我是以localhost)如下圖
http://code.google.com/intl/zh-TW/apis/maps/signup.html
拉到底下輸入http://localhost/,勾選同意條款,按下Generate API Key按鈕,即可產
生key值,再把這key值copy到上述key=值,

這個 map_temp.html檔,主要是當使用者欲知道怎到某員工家的地圖時,由前端選
擇某員工後,按下前端程式的google map按鈕,根據資料庫員工的address欄位值,
寫入map_temp.html,存到Tomcat Server 的根目錄\webapps\salary目錄底下,檔名是
以資料庫的mapfile欄位對應的值,google map 也支援中文地址英譯後的英文地址,
漢語拼音或通用拼音應該都可以,但有時漢語拼音都會出不來,且map_temp.html裡
的charset 需設為utf-8,如要顯示中文需設為big5,顯示出來的地圖才不會有問題,
我預設用中文地址英譯。

8.以開發環境NetBeans IDE 如何 Run 這支程式,很簡單如下圖,
先 Run salary project,請確定你設好 Tomcat Server,參考第一篇,以及jdbc都已設
定好,參考本篇步驟3跟4

然後在 Run salary project,可看到如下圖,輸入查詢文字後可以按搜尋更新鈕,統計圖會
跟著動態改變,按翻轉鈕會切換長條圖或圓餅圖,然後在點toolbar紅色圈圈,看能否顯示
google map,如下圖



這個英文地址是台南市政府。

9.所以部署好之後,你的啟動應用程式方式有以下幾種
a.在瀏覽器輸入網址 http://localhost:8081/salary/jdbcfx_applet_browser.html
這個是瀏覽器的 Applet 方式啟動

b.在瀏覽器輸入網址 http://localhost:8081/salary/jdbcfx.html
這個是會在桌面產生捷徑的 Applet 方式啟動

c.在瀏覽器輸入網址 http://localhost:8081/salary/jdbcfx_desktop.html
這個是會在桌面產生捷徑的 Application 方式啟動

10.這樣是不是很容易就可以完成你的應用程式部署了呢,由於寫第三篇隔了較久,
NetBeans 跟 JavaFX 都已出了較新版本,我試過 NetBeans IDE 6.7.1 for JavaFX 1.2,
也可以 Run,總之請下載最新版本,在底下網址下載
http://javafx.com/downloads/windows.jsp

本篇教學文件下載


本篇相關程式碼下載

2 意見:

匿名 提到...

嗨,我都按著你的指引做了一遍, 不過我用MySQL, driver name都改好了. 不過run的時候遇上這個error:

C:\Documents and Settings\hp\Desktop\jdbcfxSalary\jdbcfxSalary\netbeans_project\salary\nbproject\build-impl.xml:572: The module has not been deployed.
BUILD FAILED (total time: 2 seconds)

有何高見? 謝謝分享~

Unknown 提到...

你要確定你有從我的第一篇看到第三篇,一般這種情形應該是:
1.Tomcat Server 設定問題
2.除了下載 netbeans javafx 相關的plugins 之外,最好要安裝 JavaFX 1.2.1 SDK。