發表文章

目前顯示的是 12月, 2011的文章

解決 Tomcat Server in Eclipse unable to start within 45 seconds 啟動過久的錯誤

圖片
錯誤訊息如下: Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. 紅色部份因人而異,而 45 秒是預設的設定, 發生這個錯誤時大概就是 project 還什麼的 load 太久, 以致於 Server 啟動花了太久的時間 Timeout 了。 解決方法是什麼呢? 如果確定 project 和 server 等設定都正確, 只是因為 load 太久而發生錯誤的話, 最簡單的方法當然就是要延長 timeout 的時間囉。 如上面圖示: 請在 Eclipse 下方 console 那一排的 tag 中找到 Servers, 對你的 Server 連點兩下,這時會出現上方的視窗, 在右上角處點開 timeout 的設定,改成你覺得 ok 的時間, 接著儲存設定再去重開 Server 即可囉! 若還是開不起來,就繼續把時間拉長吧~ 關鍵字:Tomcat, Server, Eclipse, unable to start within 45 seconds,  server editor 參考資料: Eclipse中server启动超时的解决方法 eclipse调试tomcat或JBOSS的时候报45秒超时

Java Timer:schedule和scheduleAtFixedRate有何不同

圖片
在前一篇文章  Java Timer:排程、定時、週期性執行工作任務 中, 我們展示了如何利用 Timer 非常簡單地執行排程工作。 然而在 Timer 中有兩個用來排程的 method:schedule 和 scheduleAtFixedRate, 兩者最明顯的差異就是字面上的不同,後者多了 AtFixedRate, 可是在上一篇我們用 schedule 也可以重複執行工作啊? 到底這兩者差在哪裡呢?使用時機又該如何決定呢? 圖片來源: http://jeequ.com/12016/ 為了解決這個問題,我直接查了 Timer 的 source code, 其中最關鍵的差異為: schedule為「fixed-delay」,執行時間參照前次工作執行完成的時間: 若執行工作沒被 delay,則按照預訂的時間執行;但若執行工作時被 delay了, 随後工作的預訂執行時間會按照上一次執行 「完成」 的時間點來計算 。 scheduleAtFixedRate為「fixed-rate」,執行時間參照一開始的時間點; 和schedule一樣,若執行工作沒被 delay,則按照預訂的時間執行; 但如果執行工作時被delay了, 後續的預訂執行時間仍按照上一次執行 「開始」 的時間點計算, 且 為了「catch up」預訂時間,會連續多次補足未完成的任務 ! 另外在在單次執行的情況下, 只要預訂要執行的時間已經過了,那麼兩者都會直接把工作移除不執行。 但若在有設定 period 的情況下,若預訂要執行的時間已經過了, 基於上面所描述的行為, schedule 沒有上次執行完成的時間,會從現在開始算並執行, 而 scheduleAtFixedRate 則以預訂執行的時間開始算,且會一口氣將過去未做的補上! 接著讓我們來看例子,首先我們要看的是當執行所需時間比執行間隔長和短時, 兩者的運作會有何差異: 下面是工作 Task 的程式碼,每次進到工作時會 random 睡上 4~8秒才結束。 1 package werdna1222coldcodes . blogspot . com . demo . timer ; 2 3 import java . util .*; 4 5 public class

Java Timer:排程、定時、週期性執行工作任務

圖片
在我們寫程式的時候,常常會需要定期、延遲、排程執行任務, 這個需求可以很簡單地利用 Java 1.3 之後的 java.util.Timer  來達成。 圖片出處: http://bnfitdc.wordpress.com/2011/10/25/15-ways-to-make-time-for-exercise-help-to-my-bnfit-challenge-folk/timer-icon/ Timer 中只有下列幾個 method 可以使用, cancel 是指取消執行工作並終止 timer,purge則是移除所有工作, 至於 schedule 和 scheduleAtFixedRate 就是用來排程執行的 method, 大家可以先看看各 method 的說明: Modifier and Type Method and Description void cancel () Terminates this timer, discarding any currently scheduled tasks. int purge () Removes all cancelled tasks from this timer's task queue. void schedule ( TimerTask  task,  Date  time) Schedules the specified task for execution at the specified time. void schedule ( TimerTask  task,  Date  firstTime, long period) Schedules the specified task for repeated  fixed-delay execution , beginning at the specified time. void schedule ( TimerTask  task, long delay) Schedules the specified task for execution after the specified delay. void schedule ( TimerTask  task, long d

Tynt Insight:追蹤文章被複製的去向,並加上出處連結改善SEO

圖片
寫部落格最討厭的一件事就是自己辛辛苦苦分享的文章, 卻被別人簡單幾步驟就複製到他的網站上, 更機的是還沒有附上原始連結, 等於後續的曝光、轉貼都與原作者無關。 要是有人不明事理把盜取者當作是作者, 那對原作者而言還真是一則可悲又哀偒的笑話 orz。 基於這種狀況,有的作者會在網站上鎖右鍵、防複製的功能, 然而對我而言,網站上有很多程式碼教學分享, 若加上了防複製的功能,可能會影響到很多只是要複製程式碼學習的使用者。 所以今天就要來介紹  Tynt  這個網站, 該站在首頁上就列出了他的特點: 「 Improve your seo, keep users longer and measure your user engagement by leveraging the power of copy and paste. 」 簡而言之,他可以追蹤文章被網站讀者複製的動作, 並宣稱有增進改善 SEO(搜尋引擎最佳化) 的效果。 那麼他是如何作到的呢? 安裝該工具的方式很簡單, 首先先到網站上註冊,設定一些相關的參數後(通常都是預設即可), 再將所產生的 javascript 加到部落格或網站上, 這樣就安裝完畢囉。 安裝完後,只要網站上的文章被複製時, 這個工具會在被複製的文章段落後面加上一小段文字, 格式應該像這樣:「 更多内容: 你的文章網址/#錨點」, 如「 更多内容:  http://werdna1222coldcodes.blogspot.com/2011/12/blog-plugins.html#ixzz1hS063rgz 」, 其中紅色部份的 更多内容: 是可以自訂的,預設好像是英文的 Read More:。 效果示意圖如下: 這樣的好處是可以在別人引用的文章中留下自己文章的原始連結, 當其他使用者點下網址時就會自動連到該篇被複製的文章, (有其他介紹的文章還說會透過網址連回來時會將複製的內容反白起來,但我目前試不出來)。 當然啦,這是一種防君子不防小人的方式, 因為這種連結在貼上時轉貼者就看得到,若他要刪除,原作者也沒辦法。 上面這一段說明了文章被複製時會產生什麼效果, 更聰明的是這個網站還整理出報表, 可以讓你知道各文章的曝光度和被複製的次數, 似乎也可以知道在別人引用的文章

LinkWithin:用縮圖推薦相關文章、增加曝光率的外掛

圖片
上一篇介紹了 SimpleReach:為網站推薦熱門文章、增加曝光率的外掛 , 再更之前也介紹了: 為Blogger加入Facebook建議(Recommendations)和最新動態(Activity Feed)外掛,推薦輪播熱門文章與互動 , 這些外掛都是用來推薦相關文章,增加使用者單次瀏覽量和曝光率。 更多外掛如相關文章推薦輪播、部落格廣告賺錢、社群網站外掛等,請見總整理文章: Blog Plugins:部落格外掛大全整理,什麼都有、什麼都不奇怪 。 這篇也是要介紹這樣的外掛,這次的服務是「 LinkWithin 」, 這個網站部落格外掛可以用縮圖的方式為使用者推薦相關的文章, 藉此可以讓使用者在部落格停留更久,增加其他文章的曝光率。 這個外掛的效果如下: LinkWithin 聽起來和先前介紹過的 SimpleReach 和 Facebook 外掛很像, 除了用縮圖來推薦外,還有什麼不同之處呢? 在先前的文章中提過,Facebook 外掛是利用社群的力量, 若朋友們或是很多不認識的人都對同一篇文章按讚,則使用者也會被吸引。 SimpleReach 則是利用使用者捲動頁面到下方時動態跑出來隨機推薦文章, 因為人對會動的東西比較有興趣,所以也會特別注意到他。 至於LinkWithin則是利用人們總是喜歡看圖片大於看文字,而且他還有個特點: 在寫網站或部落格時,我們常常引用自己先前的相關文章, 像這篇我就引用了先前的 SimpleReach 和 Facebook 外掛的文章, LinkWithin 在推薦文章時會優先將我們在文章中有交叉連到的先前文章放上, 藉由文章中提及,最後又以圖片做輔助,一定可以增加連結過去閱讀的瀏覽量! 那麼LinkWithin到底要怎麼安裝呢? 以下我利用操作截圖和LinkWithin本身網站上的教學來說明: 第一步:連上LinkWithin網站,在右方填入相關資訊。 如果使用的不是 Blogger ,則會有對應的教學或直接列出 javascript 的程式碼。 只要將程式碼加到適當的位置即可。 (先別走開!若要更改Widget顯示的標題,請繼續往下看!) 若和我一樣選擇的是 Blogger 平台,則會出現接下來的步驟引導: Install Widget o

SimpleReach:為網站推薦熱門文章、增加曝光率的外掛

圖片
更多外掛如相關文章推薦輪播、部落格廣告賺錢、社群網站外掛等,請見總整理文章: Blog Plugins:部落格外掛大全整理,什麼都有、什麼都不奇怪 。 對於有持續在更新的部落格而言, 最新文章的流量的來源一種是來自於RSS、Atom等訂閱方式, 一種則是有忠誠的使用者且有定期來看的習慣。 而對部落格舊有的文章而言, 其主要的流量來源除了少數是由自己文章的交叉連結外, 其他大部份可能都是透過搜尋引擎或他人的引用連進來的。 然而,為了提升網站舊有文章的曝光率, 增加網站的瀏覽量、單次造訪頁數、平均網站停留時間等數據, 最好的方法就是想辦法吸引使用者的目光, 以相關的文章或使用者可能有興趣的熱門文章增加他們在網站停留的時間。 先前已經介紹過利用Facebook的外掛來推薦文章, 為Blogger加入Facebook建議(Recommendations)和最新動態(Activity Feed)外掛,推薦輪播熱門文章與互動 ,這是利用Facebook的社群功能, 也就是當使用者看到他的朋友們對某篇文章也有興趣時, 使用者就有可能被吸引而去點閱。 然而以我自己的經驗,因為我的朋友群在網站上的互動不夠多, 所以輪播推薦的效果並不大,常常看到推薦的都是同樣幾篇, 這樣並沒有辦法增加太多流量。 不過Facebook的這兩個外掛在網站有大量Facebook的讚、分享或留言時, 應該可以獲得很好的效果。 前情提要完畢,今天要介紹的是另一個部落格的外掛 SimpleReach , 這個網站雖然是英文,但是基本的操作非常簡單易懂, 首先在使用前要先註冊,註冊畫面如下圖: 註冊畫面中的四個欄位都是必填,記得Website URL要填對, 點下Sign Up後到email信箱中點下連結開啟帳號功能, 接著就可以開始把外掛加入網站或部落格中了。 註冊後可在頁面右上方選擇 Manage,並在下面的網站右方選擇 Get Code: 目前SimpleReach支援了幾個常見的部落格平台如WordPress、Drupal、Blogger等, 直接選擇你對應該平台即可,若使用的平台不在上面,請選擇Other。 因為我使用的是Blogger,所以這邊還是先介紹Blogger的用法, 先到Blogger的「設計 -