摘要: 最近在把在 tomcat 5.5 上開發的項目 deploy 到 JBoss 4.2 上時,在操作一段時間就會出現 java.lang.OutOfMemoryError: PermGen space,開始以為是代碼中存在死循環的地方造成這樣的問題,但是后來發現,出問題的地方都是隨機的,并不是某一處造成這樣的問題出現,懷疑是內存泄露,通過增大 heap 內存的方法來嘗試,依然不行,但是同樣的問題卻并... 閱讀全文
目前把webrice分成三部分,核心功能,顯示美觀,與其他技術的協同問題。
1,對于顯示美觀問題,eclipse 的draw2d做的真的太基礎,目前基于eclipse的together等都比較原始,不是太好看,易用性差,目前只有IBM RSA7比較美觀,這是商業利益,所以IBM不會開源這部分圖形濾鏡的代碼。這個只有靠自己了。
2,對于UML2.1的支持,個人認為現在的實現比較多,但是協同能力差,Eclipse基金會在UML方面的開源進度,個人感覺非常的緩慢。
3,對與和其他如BPM,SOA等的協同,距離還比較遠,暫時不過多考慮。
以上只是個人的看法。
webrice framework 涉及到的主要framework:
1,gef
2,emf
3,uml2
以上三大塊,也是本開源的核心,還要努力學習,深入研究以下他們的架構和實現方式。而且個人認為Eclipse缺少一種很常用的視圖,最近也在整理以下思路,做個成品。發現真的開始建造這個房子了,才發現這里面的東西真的很多,要慢慢研究主要的部件。
........
摘要: Webrice uml studio v0.1發布
萬事開頭難,先發布一個最初版本,隨后逐步完善。本平臺將基于最新的Eclipse v.3.3來實現,Eclipse v.3.3官方版本也快發布。對于Eclipse v3.2肯能又不支持的地方,請原諒,做開源,沒辦法必須跟隨新的技術。
官方網站:http://sourceforge.net/projects/webrice/
下載地址:http://sourceforge.net/project/showfiles.php?group_id=196090
需要的平臺:
Sun JavaSE 5.0(Eclipse v3.3需要JDK5.O才能最好的運行)
Eclipse S-3.3RC1以上 ,本開發環境是v3.3 RC3
相關截圖如下:
。。。。 閱讀全文
摘要: JBoss 4.2 GA 已經發布有一段時間了,主要還是一些 bug fix 已經一些新的包的加入。感覺比較爽的是解決了過去不太好用的一些地方。過去在用 JBoss 4.0.5 的時候一直被 Log 的問題困擾,如果在自己的項目里加入 log4j 和 common logging 的話,必然會出錯,所以我們不得以,必須通過一些調整手段來處理這樣的問題,也就是每次在 tomcat 下調試的應用,需要... 閱讀全文
新的博客開張了,同時博客將作為webrice的最新動態博客,謝謝dudu的資源提供。
同時啟動一個開源項目計劃,全名稱為Webrice UML Studio,是基于Eclipse的uml建模工具,將支持uml2.1所有功能,同時實現代碼的自動實時生成功能。將實現兼容現在的主流uml工具的文件格式,如IBM RSA,together,rose等;將會和開發更加緊密,特別是SOA,工作流的支持;
逐步構建我們的自己的開源平臺,實現軟件的體積小,易用,功能全! 開發此平臺的一個原因是IBM RSA容量已經達到8G以上,已經無法忍受,而且許可證授權費用非常的高昂,開發我們的開源平臺,定制軟件工程師的自己平臺。
Webrice UML Studio
webrice官方網址:http://sourceforge.net/projects/webrice/
...........
其實 Confluence 的破解并不算難,不過在網上不是太容易找到直接能用的方案,小試了一把,發現最主要的是要處理一個 atlassian-extras-0.7.20.jar 的文件,com\atlassian\confluence\page 這下面有一個 Key.page 文件,其實這就是密鑰文件了,破解的一般方法就是自己生成一個自己所知道 Key 的密鑰文件,并替換掉原來的,再用這個已知的 Key 生成自己需要的密碼。比 JIRA 要稍微復雜一點了。
附件里附上一個弄好的東西,直接替換已經安裝的 lib 下的 atlassian-extras-0.7.20.jar 文件,然后用 keygen 生成 key 就可以用了。
下載地址見:http://www.agilejava.org/space/?1/action_viewspace_itemid_188.html
摘要: 新的一年開始,按理說要對去年的什么東西做一番總結了,當然總結很多了,這次先總結一下 JSF 了,畢竟這對我來說是今年最主要的技術方向,對它也算是比較熟悉了,雖然沒有非常深入的去研究它,但從一年多的使用和理解來說,還是有不少自己的心得的,在新的一年到來之際,把這些東西記錄下來,重新記起這個讓我歡喜讓我憂的 JSF。靜觀這一年 JSF 的發展,沒有太多的興奮,也沒... 閱讀全文
摘要: 系統架構設計師角色是技術上的領導和系統開發創新遠景的來源。 隨著現在技術的進步,特別師銀行,電信都在搞省集中,那么集中意味這什么,數據量增大,并發增大,特別是現在在銀行,電信項目中為了達到平臺專業化,都是在... 閱讀全文
摘要: 昨天看到《精通EJB3.0》的中文版出來了,雖然早就在預料之中了,不過多少還是有一點想法的,終于第一本 EJB 3.0 的書正式出來了,對目前 EJB 3.0 的追逐總歸是有了點方向,但我仍然感覺,EJB 3.0 不可能像 EJB 2.0 那樣火了,Java 世界已經進入了多元化時代,Spring 已經逐步的蠶食了 EJB 說占有的份額,用其簡單靈活的配置吸引... 閱讀全文
摘要: 一直從dearbook創辦起就在 dearbook 買書直到現在,已經成為了鉆石VIP會員了,經歷了 dearbook 發展中的種種,不過說起來 dearbook 的服務確實不像其標語中說標榜的"第二書店,第一服務",從我這么多年和他們打交道的經驗來說,服務確實很難讓人滿意。
過去一開始的時候,都是采用在網上選書,然后... 閱讀全文
摘要: 關于敏捷問題
周末聽 rocket 介紹了一些來自 thoughtworks 關于敏捷的一些思想,同時也引發了大家的一些思考和討論。從一種角度來看, Agile 體現了一種軟件開發最根本的問題,就是由人在一定的時間內開發出高質量的軟件,Agile 更加注重人在整個活動里的作用,而傳統的瀑布模型中,似乎更加注重文檔等,也就是我過去所在的公司,一切開發都由文檔驅動,在這樣的情況下,團隊中每個人都是... 閱讀全文
摘要: 這里我們要將 Tapestry 與其它主要的 Java Web 框架做一番比較,包括 Struts,JSF。
Struts 是一個 Action 方式的 Web 框架,所有的請求直接對應了相應的 Action,我們需要通過一些相應的技巧性處理才能把我們在頁面上的 Click,Value Change 等轉換到后端對應的... 閱讀全文
摘要: 雖然看起來兩者似乎沒有什么聯系,但是看起來 工作流 的一些概念和狀態圖有著驚人的相似之處,或許是我過去對 UML 的理解太少了,而對 UML 的理解有僅限于 Class Diagram 和 Sequence Diagram,而且僅僅是一些粗淺的認識,而在和 Sze Hung 老大以及 james 討論問題的時候,也經常遇到狀態機的概念,或許是我在這方面太過于薄... 閱讀全文
摘要: 今天看了一篇很有意思的文章, http://www.tkk7.com/uiiang/archive/2006/10/30/77993.html ,介紹了種種項目中的編碼的惡習,其中很多的東西看起來真的是很搞笑,比如趴在Tab上睡著了那個,用中文做變量名的,還有 if(condition) a else a 那個也比較搞笑,算是夸張了點。
不過想想看,自己一直都在算是比較... 閱讀全文
摘要: 這幾天突發奇想,過去通過一些對 Navigation 的實現來省去了 JSF Navigation 的配置,現在又有新的想法了,能不能在 face-config.xml 中連 Managed Bean 都不要配置了呢,答案是肯定的,并且在實踐中也得到了證明。 閱讀全文
摘要: 花了近一周的時間,把 iCustomer 大改了一番,其實說來也沒有特別大的變化了,修改的東西只不過是一些過去的一些bug和網上朋友們的一些建議,其實重點還是放在改 bug 上,另外就是 Order 這部分系統的領域模型重構,Order 與 OrderItem 之間的關聯由原來的 one-to-many 改成了現在的 composite-element 方式,... 閱讀全文
連續三天做了三場 Share Session,講了一些關于系統開發的三個層的東西,Web Layer / Business Layer / Persistence Layer 分別以各個層面最優秀的技術為例和組內組外的同事們分享了一些我關于這些技術的理解。
雖然說講的還不是很好了,但是這三天卻給了我很大的提高,不僅僅是技術上面,更多的是在一種表達能力方面的。可以說是第一次真正意義上的上臺講東西了,因為面對的不光是同組熟悉的同事,還有很多不是太熟悉的,還有幾位老大,甚至在最后一次講JSF的時候,大老板還進來坐了一會,壓力還是挺大的,雖然要講的東西已經在之前在腦子里演練無數次了,但是要想把自己想的東西和別人講清楚,的確不是那么容易的事情了,當發現下面的同事滿臉的迷茫,就得趕緊換一個角度來說明問題,不過還算過得去的是,自己并沒有太多的緊張了,雖然是第一次正式的在臺上講東西,面對面的對著大家,不過自己要講的東西心里還比較有底,心里比較踏實了,于是也就沒有太多的緊張了。
通過三天對各個方面的技術的介紹和總結,其實也不知道大家真正能理解多少,因為太多東西沒有經過實踐是不會有太深刻的理解的,雖然有些東西當時是聽懂了,但是卻不會深深的刻進你的腦子,時間一長就忘記了。三天里,總結了這一年來我對 Java Web 開發的幾個方面的理解了,雖然這一年學到了很多很多,但還有太多太多的不了解了,有些東西當自己看的時候覺得自己了解,但是當需要把這個東西和別人分享的時候,卻發現自己有太多太多的不知道了。
似乎很久沒有寫些什么了,因為最近想的太多,做的太少了。
第一次發現 Hibernate 原來并不是自己過去想像的那樣簡單,它很復雜,很強大,卻能讓你最后要做的事情變的很少,雖然它帶來了如此多的好處,但如果想真正的用好它,必須有一個非常熟悉它的人在你的團隊里,這樣才能夠最大的發揮它的巨大威力。雖然每個人都可以花不多的時間去用會 Hibernate ,但卻只有很少的人能夠靈活的駕馭它,讓它為你服務,因為它同傳統的關系數據庫可以說是截然不同的兩條路,從玩 SQL 走過來的人,多多少少會受到它的限制,而變得不易接受ORM,像我就是一個典型了,當得到高手指點的時候,發現過去的很多想法偏離軌道還是挺遠的了,幸虧有人指點,得以走回正道。
作為 J2EE 中另一個驕傲,Spring 也以它的獨特觀點改變了 J2EE 的世界,過去用 Spring 只是稍微理解了它的 IoC 的思想,和簡單的使用了它的 Transaction 管理功能,最近細看了一下它的 AOP 感覺震動還是挺大的。基于 Interceptor 的 AOP 真的是很好用,也很強大,甚至于說,它會是一種改變 Java 開發模式的一種動力了,雖然只是剛開始看看,沒有什么深刻的理解,但卻也能夠有一些很大的感觸了,或許 AOP 在目前還是剛剛起步,或許太多的人沒有接受它理解它,AOP 的應用層面還是比較低了。
用 Hibernate 碰到一個很傻的問題,在 iCustomer 中有這樣的關聯,有服務記錄,該記錄會與 Customer 關聯,當時為了在不需要的時候不在 VO 里 new 出 Customer,用了這樣的寫法。
public Customer getCustomer() {
?if (null == customer) {
??customer = new Customer();
?}
?return customer;
}
這樣看似沒有問題,當使用到 Customer 的時候才會創建該對象。但是每次卻會報告臟數據錯誤,其實最重要的是我忽略了一個問題,這個方法同樣會被 Hibernate 調用,在 null 的時候給 new 出一個相應的 Customer,這樣就會出現問題了,如果你把 Customer 設成 null,Hibernate 調用該方法時就會自動給你 new 一個 Customer,并沒有任何 id,這樣在保存的時候會引發臟數據錯誤。所以一定要避免這樣的寫法。
別人給出的建議是把這樣的 new Customer 的邏輯放在外面寫,手動處理 Customer 的創建。頁面上傳遞的是 Customer 的 id,后臺手動加載 Customer 的 PO,然后 set 給 Support。