2006年9月29日

          grails 有一個(gè) wicket 的插件:

          http://graemerocher.blogspot.com/2007/05/grails-wicket-wonders-of-grails-plug-in.html

          我試了一下,發(fā)現(xiàn)最新版本(0.3)的wicket插件,運(yùn)行helloworld都有問(wèn)題,錯(cuò)誤是:

          wicket.markup.MarkupNotFoundException: Markup not found.

          查看了一下原因,按照文檔, HelloWorld.html 是放在 grails-app/views 目錄下的,但是 wicket 插件 沒(méi)有修改classpath 和 resource 裝載的路徑,也就是說(shuō),實(shí)際上這個(gè) HelloWorld.html 對(duì)于 wicket 來(lái)說(shuō) 是不可見(jiàn)的。但是如果把這個(gè) HelloWorld.html 放在 src/java 目錄下,則可以正常運(yùn)行。
          想到了一個(gè)簡(jiǎn)單的解決方案,修改 $GRAILS_HOME/scripts/Package.groovy,在 146 行增加:
          fileset(dir:"${basedir}/grails-app/views") {
          include(name:
          "**/**")
          exclude(name:
          "**/*.groovy")
          }

          就像 src/java 當(dāng)中的資源一樣,全部拷貝到目標(biāo)目錄下,這樣的效果就和放在 src/java 目錄下一樣了。

          主站: http://blogsite.3322.org/

          posted @ 2008-01-15 10:38 SimonLei 閱讀(1109) | 評(píng)論 (1)編輯 收藏

          首先看看我前幾天的一篇blog

          spring 與 osgi的第一個(gè)障礙

          eclipse3.1, spring2.0.1,將spring.jar放到一個(gè)插件中,在另一個(gè)插件中去使用。 最簡(jiǎn)單的例子,在context.getBean的時(shí)候就報(bào)了一個(gè)異常:

          Caused?by:?org.xml.sax.SAXParseException:?cvc - elt. 1 :?Cannot?find?the?declaration?of?element? ' beans ' .

          先是搜了一遍,沒(méi)有發(fā)現(xiàn)很有幫助的內(nèi)容。然后跟了一下,發(fā)現(xiàn)還是因?yàn)閤sd的映射找不到。而造成這個(gè)問(wèn)題的原因, 是在 spring.jar當(dāng)中的META-INF/spring.schemas 這個(gè)找不到。

          而這個(gè)找不到的最根本原因,是因?yàn)樵趀clipse當(dāng)中,META-INF目錄是不能夠被其他插件找到的。也就是說(shuō),META-INF 目錄是擁有spring.jar的那個(gè)插件所獨(dú)占的,而其他插件就算依賴于這個(gè)插件,也是無(wú)法找到META-INF目錄下的文件, 從而拋出這個(gè)異常。

          解決問(wèn)題的辦法有幾個(gè),最簡(jiǎn)單的莫過(guò)于拷貝spring.schemas文件到需要的插件中,另一個(gè)辦法是把spring的context 裝載就放在spring.jar所在的插件中,或者改eclipse的代碼。 :(

          這個(gè)問(wèn)題解決之后,緊接著第二個(gè)問(wèn)題就是

          Unable?to?locate?NamespaceHandler? for ?namespace?http: // www.springframework.org/schema/aop

          造成這個(gè)的原因和第一個(gè)類似,將spring.handlers拷貝到META-INF目錄下就ok了。

          上面是我以前的一個(gè)經(jīng)驗(yàn),今天仔細(xì)研究了一下,發(fā)現(xiàn)自己掉進(jìn)了 經(jīng)驗(yàn)主義的圈套。

          這個(gè)經(jīng)驗(yàn)是這樣積累起來(lái)的:在剛開(kāi)始嘗試使用eclipse的時(shí)候,用的是3.0和3.1Mx系列,當(dāng)時(shí) 不知道osgi是個(gè)什么東西 :$ 創(chuàng)建的幾個(gè)插件,都沒(méi)有創(chuàng)建osgi bundle manifest。也就是說(shuō), 只有plugin.xml,而沒(méi)有META-INF/MANIFEST.MF文件的。但是在運(yùn)行期,eclipse會(huì)自動(dòng)的 從plugin.xml當(dāng)中讀取信息,生成臨時(shí)的MANIFEST.MF文件,放在 runtime的 configuration/org.eclipse.osgi/manifests 目錄下。而生成這個(gè)MANIFEST.MF文件,是 通過(guò) PluginConverterImpl 這個(gè)類來(lái)實(shí)現(xiàn)的,在它的 isValidPackageName 方法中,所有的 META-INF或者以META-INF開(kāi)頭的目錄,都不會(huì)被自動(dòng)的export出去,從而在臨時(shí)生成的MANIFEST.MF 文件中,永遠(yuǎn)不會(huì)有META-INF目錄的export。

          當(dāng)時(shí)剛開(kāi)始接觸eclipse和osgi,根本不知道自己當(dāng)時(shí)最佳的解決方案就是創(chuàng)建一個(gè) bundle manifest, 然后在其中將META-INF目錄export出來(lái)。而是通過(guò)盲目的修改代碼來(lái)繞過(guò)這個(gè)彎。后來(lái)這個(gè)彎繞過(guò)去了, 留給我的經(jīng)驗(yàn)就是:META-INF這個(gè)目錄,是插件獨(dú)享的,別的插件不允許訪問(wèn)的。

          于是,在前幾天,當(dāng)spring.jar當(dāng)中的幾個(gè)META-INF目錄下的文件訪問(wèn)不了時(shí),我也認(rèn)為這個(gè)經(jīng)驗(yàn)有用, 差點(diǎn)就去改eclipse的代碼了。幸好嘗試了一下,把spring.jar所在的插件中,將META-INF目錄共享出來(lái), 居然就好了。仔細(xì)查了一下,發(fā)現(xiàn)屏蔽META-INF的代碼只出現(xiàn)在PluginConverterImpl這個(gè)類當(dāng)中。 回頭想了想,終于明白自己這次是掉在經(jīng)驗(yàn)主義的坑里面了。

          經(jīng)驗(yàn)主義害死人啊。唉。

          主站: http://blogsite.3322.org/

          posted @ 2006-12-28 10:37 SimonLei 閱讀(3361) | 評(píng)論 (2)編輯 收藏
          SUN Tech 2006第一天

          會(huì)場(chǎng)設(shè)在最擁堵的北四環(huán)中路,趕到會(huì)場(chǎng)已經(jīng)接近9點(diǎn),匆忙報(bào)道之后,
          第一感覺(jué)是不像去年那么大的場(chǎng)面了,只有兩個(gè)會(huì)場(chǎng),而且很奇怪的是,
          參展的其他廠商,也只有AMD一家,顯得有點(diǎn)冷清。

          James Gosling又一次出現(xiàn)了,不過(guò)做的演講并沒(méi)有很多新鮮的東西,值得
          注意的倒是Ruby on Rails出現(xiàn)在他的演講內(nèi)容當(dāng)中,這大概也與JDK未來(lái)版本
          要支持動(dòng)態(tài)語(yǔ)言,以及SUN把jruby的兩個(gè)人招進(jìn)去有一系列的關(guān)系。隨后有
          一個(gè)SUN的技術(shù)展示,其中有意思的一個(gè)是 SPOT(Small Programmable Object Tech),
          有點(diǎn)象《少數(shù)派報(bào)告》當(dāng)中阿湯哥用的手套,用手套來(lái)當(dāng)做鼠標(biāo)一樣的在
          空中使用,很是不錯(cuò)。

          隨后一整天的演講,給我的感覺(jué),重頭戲是Netbeans,其次是Ajax,再其次是
          Java EE 5。感覺(jué)今天一系列的活動(dòng)都與Netbeans有關(guān),Ajax和Java EE 5包括
          Java ME,都時(shí)不時(shí)的與Netbeans掛上鉤。從今天被Netbeans洗腦的結(jié)果來(lái)看,
          Netbeans現(xiàn)在確實(shí)越來(lái)越好用,功能也越來(lái)越強(qiáng)大。Eclipse如果按照現(xiàn)在的發(fā)展
          速度,確實(shí)有些危險(xiǎn)。不過(guò),從另一個(gè)角度看,有競(jìng)爭(zhēng)才能促進(jìn)發(fā)展,也不算是件
          壞事。

          其他方面的收獲,包括對(duì)JAVA SE 7 的一些特性了解,Java EE 5的一些介紹,以及
          關(guān)于Java EE 5的參考實(shí)現(xiàn) GlassFish的介紹,順便還聽(tīng)了一些Java ME的東西,也
          有些意思,可惜暫時(shí)用不上。

          今天有一些感觸:
          ?
          好的技術(shù),如果沒(méi)有好的工具支持,也是很難生存的。這就聯(lián)想到我們自己的IMP框架,
          過(guò)去將重點(diǎn)放在framework和engine上,而對(duì)于designer的投入則遠(yuǎn)遠(yuǎn)不夠。這樣造成的現(xiàn)
          象就是限制了開(kāi)發(fā)效率,從而沒(méi)有能夠最大的發(fā)揮IMP框架的作用。

          Netbeans雖然好用,也能夠從一定程度上提高生產(chǎn)力。但是我還是那種觀點(diǎn),看上去
          很美的代碼生成機(jī)制,往往只是節(jié)省了“創(chuàng)建”的時(shí)間成本,而對(duì)于“修改”的效
          率提高,卻不一定有幫助。

          JSF感覺(jué)還是沿襲了Struts的東西太多,就算通過(guò)Ajax的render,感覺(jué)還是不能算非常好的
          Component Framework。還是不如Echo2 ;)

          回家的時(shí)候,正趕上北四環(huán)的擁堵高峰,回到家已經(jīng)很晚了,寫(xiě)的很零亂,不知道明天
          會(huì)不會(huì)有什么大的收獲。反正今天感覺(jué)就是被洗了一天的腦,害得我都想裝一個(gè)Netbeans
          來(lái)玩玩了。

          SUN Tech 2006第二天

          又經(jīng)歷了痛苦的2個(gè)小時(shí)到達(dá)了會(huì)場(chǎng),今天的SUN公司主題居然是“開(kāi)源的好處”,
          重點(diǎn)提出開(kāi)源最終有利于開(kāi)源者,號(hào)稱SUN從OpenSaloris的開(kāi)源當(dāng)中獲得了很多
          好處。不知道前幾年大家強(qiáng)烈要求SUN 開(kāi)源的時(shí)候,是不是也是這種論調(diào)。也懶得
          去查以前的新聞了,不過(guò)總算逐漸有將Java開(kāi)源的打算了,而且SUN號(hào)稱要將所有的
          軟件開(kāi)源,這對(duì)于open source社區(qū),也算是件好事。

          今天總的來(lái)說(shuō)內(nèi)容不是很豐富,這一次的Tech Day,總共也就是幾個(gè)人在講,一個(gè)人
          講好幾場(chǎng),這在以前的Tech Day是很少出現(xiàn)的。

          今天的收獲如下:

          聽(tīng)了一場(chǎng)關(guān)于swing和美化swing的講座,感覺(jué)SUN對(duì)于java的投入,比以前更大了。
          以前,關(guān)于swing的微詞很多,也有很多不好用的反饋,但是在幾個(gè)jdk版本的發(fā)布過(guò)
          程當(dāng)中都沒(méi)有改進(jìn),最典型的莫過(guò)于ContentPane,"Lastly, after seven years, we've made
          jFrame.add equivalent to jFrame.getContentPane().add()."。在JDK5之后,可以感覺(jué)到SUN
          對(duì)于用戶社區(qū)的反饋開(kāi)始逐漸重視。對(duì)于swing當(dāng)中的功能較弱的問(wèn)題,專門(mén)整了一個(gè)
          swinglab來(lái)解決。其中還有個(gè)swingx的子項(xiàng)目,也有不少的swing功能增強(qiáng)組件可以用。

          Apache Derby,也就是原來(lái)IBM收購(gòu)informix時(shí)收購(gòu)到的Cloudscape,現(xiàn)在又有了一個(gè)新
          名字叫 Java DB,而且會(huì)隨著JDK6一起發(fā)布。Java DB的功能比較完善,據(jù)說(shuō)性能也不
          錯(cuò),號(hào)稱支持300G的數(shù)據(jù)量沒(méi)有問(wèn)題。如果這樣的話,不僅hsql可以拋掉,而且說(shuō)不定
          mysql也可以不用了。我現(xiàn)在也很喜歡這種既可以embed,又可以做為cs的數(shù)據(jù)庫(kù),現(xiàn)在
          做rails的就是用sqlite,感覺(jué)也夠用了。Java DB還有個(gè)很強(qiáng)的功能是,可以將數(shù)據(jù)打包為
          jar文件,做為只讀的db,放在光盤(pán)或者其他地方,做為備份和還原,以及做demo應(yīng)用放
          在光盤(pán)上,應(yīng)該都有很大的用處。

          JDK for script language. 在JDK6當(dāng)中,已經(jīng)支持 ruby和javascript兩種腳本語(yǔ)言了。
          功能上感覺(jué)有點(diǎn)象BSF,但是由于隨著JDK6一起發(fā)布,所以以后影響力會(huì)更大。
          而且,做演講的人也提到,jruby的開(kāi)發(fā)者進(jìn)入SUN公司,恐怕不只是用ScriptEngine
          支持script語(yǔ)言這么簡(jiǎn)單。今天體驗(yàn)了一下印度人說(shuō)英語(yǔ),確實(shí)是強(qiáng)...

          另外還聽(tīng)了一下 MBean,Concurrence方面的東西,收獲也有一些。例如在JDK6當(dāng)中,
          MBeanServer缺省就啟動(dòng)了,而不像JDK5里,需要用一個(gè)命令行參數(shù)才能啟動(dòng)。
          兩天下來(lái),感覺(jué)這一期的SUN Tech Day和以往最大的區(qū)別就是,這一期完全是被
          SUN自己壟斷了,沒(méi)有別的公司演講, 不討論別的公司的內(nèi)容,沒(méi)有別的公司參展。
          言必稱 NetBeans,操作系統(tǒng)必稱 Solaris。從一個(gè)角度來(lái)看,SUN公司確實(shí) 積極的
          參與到了開(kāi)源社區(qū)當(dāng)中,并且比以前更加接近用戶,也更積極的響應(yīng)用戶的request。
          這一點(diǎn),從Netbeans的進(jìn)展神速, 到JDK最近幾個(gè)版本的新特性增加速度,都比JDK5
          以前要好很多。這對(duì)于Java的進(jìn)一步發(fā)展,可以說(shuō)是一件好事。從另一個(gè) 角度來(lái)看,
          這一屆Tech Day表現(xiàn)出來(lái)的情況,不知道是應(yīng)該說(shuō)SUN更加有了自主意識(shí),還是應(yīng)該說(shuō)
          SUN確實(shí)沒(méi)有很好的組織 這次會(huì)議。從參加演講的人員,到展廳的布置來(lái)看,
          都不如往屆。不知道是不是SUN財(cái)務(wù)緊張?jiān)斐傻?,hoho.

          又花了兩個(gè)小時(shí)才從首堵北京的北四環(huán)中路到了家,感覺(jué)今年的Tech Day,
          最大的收獲是被洗腦了,也體會(huì)到了目前最火爆的Ajax是如何的火爆。

          主站: http://blogsite.3322.org/jspwiki/
          posted @ 2006-09-29 10:09 SimonLei 閱讀(1446) | 評(píng)論 (4)編輯 收藏

          統(tǒng)計(jì)

          主站蜘蛛池模板: 龙胜| 芮城县| 霞浦县| 简阳市| 壤塘县| 南汇区| 丹江口市| 浮山县| 青岛市| 丽江市| 岳普湖县| 柘城县| 陆良县| 武鸣县| 察隅县| 临夏县| 铜川市| 万州区| 龙门县| 青州市| 高淳县| 宽甸| 乐业县| 平和县| 沁源县| 雅江县| 柳河县| 丹巴县| 深泽县| 惠来县| 阿克苏市| 诸城市| 泽库县| 平陆县| 翁源县| 砚山县| 富源县| 南开区| 阳原县| 五大连池市| 富宁县|