2008-09-12

Tomcat 的 Datasource 問題

最近在 Tomcat 上開發,使用 Tomcat 所提供的 Datasource 來接資料庫,可是發現測試時,在針對 CLOB 轉型時 oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob(1); 一直出現 java.lang.ClassCastException: oracle.sql.CLOB 的錯誤,而用 Debug Mode 去觀察時,發現取回來的 Clob Object 確實是 oracle.sql.CLOB 的 instance,原本以為是用的 JVM 太新的關係,結果換了 JVM 也發生一樣的錯,後來才發現,原來是 tomcat ClassLoader 的問題。 一般 ClassLoader 的工作流程是:
  1. 收到一個載入類的的請求
  2. 請求其父ClassLoader來完成該類的載入
  3. 如果父ClassLoader無法載入,則自己試圖完成該類的載入
而 WEB APP 的 ClassLoader 實現與眾不同: 它先試圖從 WEB APP 自己的目錄裡載入,如果失敗則請求父 ClassLoader 的代理。 而我為了使用 Datasource 來連接資料庫,因此在 Tomcat 的 lib 放裡放了 Jdbc driver ,Datasource 取資資料庫連線使用的 driver 是這個。但在 ap 的 web-inf/lib 下,我也放了 Jdbc driver ,這使得我在轉型時,ClassLoader 會取用這個 Driver 來轉型,雖然兩個本版一模一樣,但始終還是透過不同的 ClassLoader 載入的,因此沒辦法互轉,造成程式出錯。 所以,在 Tomcat 上使用 Datasource 時,記得 ap 下不要再放重覆的 Driver 了,以避免造成同樣的錯誤。 可參考: http://www.memezilla.com/2007/01/05/remove-oracle-clob-classcastexception http://www.blogjava.net/realsmy/archive/2007/05/04/115272.html

2008-09-01

利用 VPC 測試 Internet explorer

上一篇有寫到要測試不同版本的 IE ,有兩種方法,今天又發現微軟提供第三種方法,就是利用他所併購的 VPC 軟體來測試: 1. 首先我們要到下面網址先下載免費的 Virtual PC 來安裝 http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx 2. 到Internet Explorer Application Compatibility VPC Image下載內含IE6、IE7、IE8等不同版本的 Windows XP 或 Windows Vista 映像檔,目前有下列幾個版本
  1. IE6-XPSP3_VPC.exe(421.7 MB):內含Windows XP SP3及IE6 VHD映像檔。
  2. IE7-VIS1.exe、IE7-VIS2.rar、IE7-VIS3.rar(3個檔案合計約1990.5 MB): 內含Vista及IE7 VHD映像檔(下載這3個檔案並放在相同目錄,再執行IE7-VIS1.exe即可解壓縮)。
  3. IE7-XPSP2_VPC.exe(456.8 MB):內含Windows XP SP2及IE7 VHD映像檔。
  4. IE8B2-XPSP3_VPC.exe(464.6 MB):內含Windows XP SP3及IE8 Beta 2 VHD映像檔。

2008-08-30

多版本 IE

身為一個 Web application 的開發者,常常需要測試不同版本的 Brower 來了解本身開發的程式是否相容,尤其是 IE 在不同版本有不同的問題,一定要針對每個版本進行測試。但微軟只允許我們系統中只有一個版本的 IE ,那要怎麼解決呢?有以下兩種選擇:
  1. IE Tester
  2. Internet Explorer Collection
利用上述個程式,我們便可針有不同版本的 IE 進行測試了。 參考連結: http://www.ghacks.net/2008/08/30/use-multiple-internet-explorer-versions-simultaneously/

2008-08-22

破解 windows 2000 的帳號密碼

最近因為一些 Windows 2000 Server 的密碼被別的同事改掉,造成沒辦法進去系統進行維護,剛好在網路上看到 2008 Best of Open Source Software Awards ,裡面有 Ophcrack 這個軟體可以找出目前系統的帳號及密碼,剛好可以解決我這個問題嚕,有需要的可以去下載試試,只要燒他的開機光碟然後拿到那台電腦開機就好了。 參考連結: http://www.goodman-lai.idv.tw/2008/08/infoworld-2008.html

2008-08-18

如何啟動 ACPI 來讓電腦自動關閉電源

最近在公司為了節能減炭,計畫將一些測試用的 Server 定時開關機來減少電力的損耗,而那些電腦裡,有幾台是 Windows 2000 server ,主機版也有支援 ACPI,不知道為什麼關機就是會出現【您可以安心關機了】的字眼而不會直接關機,這樣的 Server 造成需要有人去實際關機而不能排程關機(人是懶墮的,可以由電腦自己開關機就不要排值日生去關啊)。因此小弟就研究了一下,原來是 ACPI 的功能沒有被開啟,造成電腦不會自動關電源,只要照著以下步驟將 ACPI 的 Driver 改一下就行了(PS. 前提是主機版有支援 ACPI):
  1. 在【我的電腦】上按右鍵,選擇【管理】,點選【裝置管理員】,展開【電腦】,如果顯示如下【Advanced Configuration and Power Interface (ACPI)PC】表示已經開啟此功能,否則則繼續往下做。
  2. 在上面按右鍵,選【內容】,點選【驅動程式】
  3. 點選【更新驅動程式】,按下一步,選擇【請顯示這個裝置目前的驅動程式清單,讓我從清單中指定驅動程式(D)】
  4. 點選下一步,點選下面的【顯示這個裝置類別的所有硬體】,然後選擇 ACPI 的 driver。
  5. 點選下一步,安裝 Driver,重開機後就大功告成了

請注意,如果你的電腦沒有 Acpi 的功能,千萬不能裝這個 Driver,否則可能出問題。

2008-03-08

我的練習曲-今天要出發了

預計早上八點從汐止火車站出發,我竟然整理東西到現在還沒睡覺,不知道會不會騎車騎到睡著,XD

先預祝我環島成功囉!! 晚安

2008-03-04

我的練習曲 - 預計行程

Day1 南港 => 基隆 => 礁溪 100 公里左右 Day2 礁溪 => 蘇澳 約 50 公里 Day3 蘇澳 => 新城 約 90km Day4 新城 => 花蓮 30 km Day5 花蓮 => 玉里 100 km Day6 玉里 => 台東知本 100 km Day7 台東知本 => 屏東楓港 88.45 km Day8 屏東楓港 => 墾丁 50 Day9 墾丁 => 屏東楓港 50 km Day10 屏東楓港 => 高雄路竹(芃朋家) 100 km Day11 高雄路竹 => 台南新營(Cedric 同學) Day12 台南新營 => 彰化溪洲(我家) Day13 彰化溪州 => 苗栗頭份(Nancy 家) 100 km Day14 苗栗頭份 => 中壢 90 km Day15 中壢 => 台北 50 km

五指山環島行前會

本週本來要去玉山重新體驗一下山上生活的,但是因為封了山,沒辦法去,嘉明湖的時間我又不能配合,只好引恨留在家裡當宅男嚕XD。好在下星期就要開始環島了, Lopo 說要行前會,Cedric 說要去五指山開,因此就成就了這次的行程。

原本的目標行程:

原計畫路程

但是因為我們 GPS 還沒搞懂怎麼用,加上路沒有記的很清楚,結果多跑了一個【金龍禪寺】,前面坡度還滿徒的XD:

實際路程

沒錯,就是旁邊那個 4 讓我們多爬了一段,雖然直接從那上去也是可以啦,但是為了怕迷路,加上原來只有準備走原路線的地圖,只好再騎回原路線往上爬嚕。

在上山的路上,遇到兩位走路的小姐,走的速度竟然可以跟我們騎腳踏車比,真是太慚愧了;在長青路跟五指山產業道路交界休息時,遇到一個老伯,已經六十多歲了,他六十三歲第一次買車就是去環島,而且帶帳蓬只花了十二天,我們這些年青人竟然安排了十五天去環島,真是太令我汗顏了。另外他也介紹了一條一天來回的台北騎車路線,就從五指山上去,下金山再從淡水回來,沿路還找朋友聊天喝酒,一天來回,這對我來說,怎麼可能嘛,相比之下,我真的遜掉了,唉。

上山遇到的老伯 
上山遇到的老伯,騎的滿快的

P1020199
Mark 熱心讚助的 PDA 加上在上山喝的熱可可

P1020197
路上的山櫻花

P1020206 P1020207 P1020213
山上的夜景,滿美的,可惜天氣不是很好,視線不佳。如果帶女朋友上來看,應該相當不錯,可惜我沒女朋友啊XD。

blog 重新開張

好久沒有寫 blog 了,現在開始要重新開張囉,要努力為將來留點回憶。

2005-09-27

你這套系統的優點是什麼?

『你這套系統的優點是什麼?』今天跟著經理、PM、SA 一起去客戶那邊開上線說明會,一開頭就被問了這句話,一時間,竟然無法回答這系統與他們現行的作業有什麼差別,有什麼優點,做了什麼樣的改善,讓他們能夠得到更大的效益。 為什麼會回答不出來,其實是有原因的。這套系統的開發,我並非從頭就開始參與,我大概是在專案開始後三個月才加入的,因此不了解一開始跟客戶的約定,也不曉得系統為什麼要做成要符合現行作業的流程。再來,因為這是我第一份工作,其實我也不太有立場發表我對這系統的意見,因此對於系統太過於客製化也有一定的責任。 其實一開始我就對系統有一些疑問,為什麼有些資料可以直接利用資訊系統傳遞,卻要以客戶現行的模式,利用紙本傳回?有些東西應該符合現在的作業,卻因為要改革,而做成了別外一種方式,結果不符合使用者的需求? 這個系統也不是說沒有優點,報告自動判讀,就是一個很大的優點了。產品設計方便、編輯報告容易,這些都是相當的優點,但卻被其缺點給掩蓋掉了。他的缺點是太過於客制化了,機乎跟客戶現行的流程相符,前半段的流程反而會使客戶更麻煩,造成客戶的反彈。其實,資訊系統在設計的同時,應該順便進行流程的再造,將現行不必要的流程刪除,以淢少人力的消耗。當然這樣做會有不少的阻力,但是如果推行的好,會讓成本降低,效率增加,好處多多阿。

2005-09-25

了解問題 ,再發表意見

最近公司來了一位新的副理,擔任我目前進行專案的PM,前幾天跟他介紹了目前專案的進度、系統的規畫,系統的操作流程。在會議過程當中,她發表了不少相當多的意見,將她之前的意見提出,要來給我們做參考與改進。 其實,這些意見算是相當有用,而且很多也是我們專案未考慮到的部份。不過,她卻在錯的時間點講了這些意見,並且給人感覺否定了我們專案人員對這專案努力,給了整個小組不小的打擊與反彈。 其實,她並不懂這個專案會為會發展成為目前的樣子,如何從小小的一塊專案發展到目前的規模,在不了解前因後果的情況下,發表了那些言論,成造成反彈是必然的結果。而且,又把一般 application 的東西硬是要套在目前的 web application 上,實在另人難以接受。在這專案即將驗收的前夕,如此的建議實在沒有幫助,或許是求好心切,但我覺的,對於一個空降外來的專業領導人,還是應該要等到對這公司了解、對這專案熟悉後再來進行改革也不遲。否則,不但無法達到應有的效果,而且會造成內部人員的反彈。