最近在開發GWT專案,遇到一個問題
明明我已經把library import進來的,但是為什麼eclipse卻提示說找不到library 的source
我一共寫了兩個class 其中一個沒問題
後來終於找到原因
就是因為package的關係
在GWT專案中package是有預設關係的
但這也是因為我文件還有GWT沒有看仔細所造成的
預設GWT專案裡面會有client 跟server還有share的package
而放在client裡面的class最後都會編譯成javascript
所以如果你今天import library無法被編譯成javascript , 那eclipse就會報錯
以上這個我知道
但是我沒注意到share package這個部份
因為我想寫的東西是一個tool 我就想說放在share就好
結果就出問題了
share裡面的東西同時會編譯成javascript跟 .class所以一樣不能import無法被轉成javascript的library
所以裡面盡量只放GWT提供的class 或是簡單的資料結構
如果你的電腦夠慢的話,你會發現當你寫完code存檔完一開始是不會出現錯誤
因為他會先編譯成class
但是大概過了一陣子,你就會見鬼似的看到錯誤訊息
這就是因為他要編譯成javascript的時候出錯了
但是你無法從eclpise提供的訊息當中知道
2011年10月19日 星期三
2011年10月17日 星期一
dom4j - java上的xml parser library
最近工作上在用GWT寫網頁
需要寫一個api給client使用並且回傳的東西是xml
原本GWT還有java就有內建很多可以使用
但後來找到一個聽說效能好而且比較不會吃記憶體的工具
那就是dom4j
官網位置:
http://dom4j.sourceforge.net/
用起來大同小異
因為我也只用到產生Element還有搜尋xpath而已
一開始使用上有點不習慣
之前寫c sharp的時後所謂的document已經是已包含了root這個根節點,所以通常不用指定root
但在dom4j裡面document只是代表整份文件裡面除了表頭什麼都沒有
所以你必須自己產生root的根元素, 使用狀況如下
下面是我的其中一個function 這個主要目的是要取得某個節點
如果這個節點不在的話,就自己產生一個
需要寫一個api給client使用並且回傳的東西是xml
原本GWT還有java就有內建很多可以使用
但後來找到一個聽說效能好而且比較不會吃記憶體的工具
那就是dom4j
官網位置:
http://dom4j.sourceforge.net/
用起來大同小異
因為我也只用到產生Element還有搜尋xpath而已
一開始使用上有點不習慣
之前寫c sharp的時後所謂的document已經是已包含了root這個根節點,所以通常不用指定root
但在dom4j裡面document只是代表整份文件裡面除了表頭什麼都沒有
所以你必須自己產生root的根元素, 使用狀況如下
Document document = DocumentHelper.createDocument(); Element rootElement = document.addElement("root");
下面是我的其中一個function 這個主要目的是要取得某個節點
如果這個節點不在的話,就自己產生一個
private Element getBookElement(Element rootElemt, String bookid) { Element bookElement = (Element) rootElemt.selectSingleNode("book[@id='"+bookid+"']"); if(null ==bookElement) { bookElement = rootElemt.addElement("book"); bookElement.addAttribute("id", bookid); } return bookElement; }
訂閱:
文章 (Atom)