GAE/J上的data store並不是關聯式資料庫所以對於JPA不的功能並不是百分百的支援,像是對於JPA對應於物件繼承的支援就只支援InheritanceType.TABLE_PER_CLASS
(關於InheritanceType.TABLE_PER_CLASS詳見:http://caterpillar.onlyfun.net/Gossip/EJB3Gossip/TableperConcreteClass.html),若是指定其他InhreitanceType則在執行時會拋出Exception~
另外JPA Query物件的方法getSingleResult()若撈取到無資料料會丟出NoResultException,若撈取到的資料超過一筆會丟出NonUniqueResultException。而getResultList()若撈取無資料則會傳回一個size為空的List物件(詳見:http://download.oracle.com/javaee/5/api/javax/persistence/Query.html#getSingleResult())
部落客廣告聯播
2010年12月31日 星期五
2010年12月22日 星期三
jQueryWTP - 讓你在eclipse寫jQuery時也有程式碼提示
寫java程式的工程師是很幸福的,隨便一款IDE都會有程式碼提示功能,那麼在寫jQuery script時呢?
有的。如果你使用Eclipse,使用jQueryWTP就可以達到。jQueryWTP並不是Eclipse的plugin,他只提供一個工具來patch現有的Eclipse WTP plugin 來加入對jQuery的支援~
話不多說,就裝來用用看吧~
有的。如果你使用Eclipse,使用jQueryWTP就可以達到。jQueryWTP並不是Eclipse的plugin,他只提供一個工具來patch現有的Eclipse WTP plugin 來加入對jQuery的支援~
話不多說,就裝來用用看吧~
- 首先到http://sourceforge.net/projects/jquerywtp/下載jQueryWTP 工具,我使用的Eclipse是Helios(3.6)的JavaEE英文版,在這我便下載了jqueryWTP0.40foEn.jar
- 執行java -jar jqueryWTP0.40foEn.jar
〔Jar File〕選擇你eclipse\plugin目錄下的org.eclipse.wst.jsdt.core_?????.jar
〔Output Folder〕選擇另一個暫存的資料夾,這裡我先選存到我的桌面
按下Generate會在〔Output Folder〕產生一新的org.eclipse.wst.jsdt.core_?????.jar
- 先備份你eclipse\plugin目錄下的org.eclipse.wst.jsdt.core_?????.jar,在將新產生的org.eclipse.wst.jsdt.core_?????.jar覆蓋掉原本eclipse\plugin目錄下的檔案
- 接著使用-clean參數來執行eclipse (用來清除plugin快取,使新的jar生效)
- 接著開啟你的eclipse,就可以快快樂樂的在Eclipse裡面使用jQuery的程式碼提示功能囉~爽的啦~
另外,如果你使用DreamWeaver也想要有jQuery程式碼提示功能,可以到http://xtnd.us/dreamweaver/jquery下載jQuery Extension for DreamWeaver來使用~
2010年12月13日 星期一
HibernateTransactionManager 與 TransactionDefinition.PROPAGATION_REQUIRES_NEW
關於Spring+Hibernate裡設定HibernateTransactionManager的TransactionDefinition.PROPAGATION_REQUIRES_NEW一直都沒有作用,
關於問題描述可參考此篇: http://forum.springsource.org/archive/index.php/t-50039.html
一直不了解為什麼?
搞了半天原來只有JTATransactionManager支援REQUIRES_NEW,
詳參考: http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/transaction/TransactionDefinition.html#PROPAGATION_REQUIRES_NEW及以下截圖:
點圖放大 |
蔡董,原來一切都是我們把它想得太完美了...
2010年11月30日 星期二
基於JAVA的開源碼RIA - Apache Pivot
相較於Java FX令人懷疑的前途,Apache Pivot相對穩健。
或許Java FX非常"炫",但體驗過Pivot後相形下執行很順暢。
Pivot能以Java 或其他JVM language(如Groovy、JavaScript等)開法,可以Standalone方式或是Applet方式執行。
Pivot和Swing一樣是Base on Java2D,也使用MVC pattern來分離元件與資料,此外它還有宣告式的UI(WTKX: XML方式宣告UI)、data binding、web service整合、特效等功能。
或許Java FX非常"炫",但體驗過Pivot後相形下執行很順暢。
Pivot能以Java 或其他JVM language(如Groovy、JavaScript等)開法,可以Standalone方式或是Applet方式執行。
Pivot和Swing一樣是Base on Java2D,也使用MVC pattern來分離元件與資料,此外它還有宣告式的UI(WTKX: XML方式宣告UI)、data binding、web service整合、特效等功能。
- 關於基本的介紹可參考:
Pivot a Top Project: Ready to Challenge Flex, Silverlight, and JavaFX - Apache Pivot官方網站:
http://pivot.apache.org/index.html - Apache Pivot Demo:
http://pivot.apache.org/demos/
2010年11月26日 星期五
Amazon 雲端服務免費試用 - AWS Free Usage Tier
Amazon最近終於在2010/11/1為其雲端服務提供了免費方案,以提供新客戶能在有限的額度內體驗、評估Amazon的雲端服務。
Google App Engine在很早前就可以在有限額度的免費使用了。
Amazon如今總算是敞開了試用的大門了。
關於AWS Free Usage Tier請參考:
詳細的中文介紹,可參考 軟體玩家 的文章:
Google App Engine在很早前就可以在有限額度的免費使用了。
Amazon如今總算是敞開了試用的大門了。
關於AWS Free Usage Tier請參考:
詳細的中文介紹,可參考 軟體玩家 的文章:
2010年11月17日 星期三
ChinShelf勤學 學習資源管理系統
如果你也和我一樣有下載蒐集電子書的習慣,或許可以試試看這套軟體「ChinShelf勤學 學習資源管理系統」。
ChinShelf可以用來管理、紀錄您電腦裡的電子書(PDF、CHM、DOC等)、教學網頁書籤、您轉存在電腦硬碟裡的教學光碟等,該系統使用Java開發,只要有安裝Java 6執行環境的電腦都可以安裝、使用該系統。
ChinShelf以GPL v3授權發布,原始碼開放並Hosting在Google code專案代管。
ChinShelf的專案網址:http://code.google.com/p/chinshelf/
ChinShelf的下載頁面:http://code.google.com/p/chinshelf/downloads/list
2010年10月3日 星期日
2010年9月8日 星期三
2010年9月7日 星期二
Java Lobby: Storing passwords in Java web application
在儲存密碼時,要如何增加安全性以防止被破解呢?
此文提到使用加密的話,因為加密是雙向性的,加密過後的結果只要使用正確的方法解密就可以得到原來的密碼。所以此文建議使用密碼雜湊(Password Hashing)來演算後再將密碼存入檔案或資料庫。
那麼,要如何使用密碼雜湊呢?
請直接看原文的程式碼範例,該範例簡單明瞭,很快就能將該方法套用在您的系統上使用了~
全文詳見:
2010年8月29日 星期日
Java Web Start - 「splash:recv failed」問題
此問題乃是因為系統上安裝的comdo firewall所造成,詳見:
http://forums.comodo.com/help-for-v3/java-web-start-splashrecv-failed-t24784.0.html
解決方法是 暫時停用 comdo firewall 或是移除掉comdo firewall
http://forums.comodo.com/help-for-v3/java-web-start-splashrecv-failed-t24784.0.html
解決方法是 暫時停用 comdo firewall 或是移除掉comdo firewall
2010年8月15日 星期日
Oracle與開放原始碼:一列表的不滿與抱怨
詳全文請閱原文:
http://java.dzone.com/articles/oracle-and-open-source-list?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)
5. 拔掉Postgres的插頭
幾周前,Oracle無預警的中止之前Sun同意Postgres SQL專案開發使用的伺服器。毫無預警與知會。完全就是顧慮Postgres對Oracle和MySQL的競爭~
4. 浪費Sun有才幹的開發人員,尤其是Gosling(Java之父)
一堆有才幹的人因為Sun被Oracle併購而走人,有些甚至在併購完成前就走了
3. 殺了OpenSolaris
2. JCP和Harmony建議書 開倒車
1. 控告Google
-----------------------------------------------------
希望官僚的Oracle能有所體悟,不要把Java Developer一個個的給氣走....
看來已經有許多人開始懷念被併購前的SUN了....
2010年8月14日 星期六
2010年8月1日 星期日
Dolph's Toolbox - Dolph的工具箱
http://dolphstoolbox.appspot.com/
這個小型WebApplication主要是我體驗GAE(Google App Engine)的一個小作業,主要的功能有:
1. 資料遮蔽SQL指令產製 -->
使用者輸入table名稱、column名稱,此程式產出SQL statement可以用來做資料表格更新,將在資料庫的一些敏感資料以遮罩字元取代,如「王曉明」--> 「王*明」
2. native2ascii、URL encode/decode、base64 encode/decode、Hex encode/decode
實作用到的技術也很簡單,主要只用到了JSP、JSP custom tag lib、jQuery,
而GAE方面的service有用到JDO API做資料儲存、User Service做登入檢查、Java Mail配合Mail service做建議的電子表單結果寄送。
這類簡單的小程式各位應該也能很快就做出來的,一起來玩玩GAE吧。
http://code.google.com/intl/zh-TW/appengine/
這個小型WebApplication主要是我體驗GAE(Google App Engine)的一個小作業,主要的功能有:
1. 資料遮蔽SQL指令產製 -->
使用者輸入table名稱、column名稱,此程式產出SQL statement可以用來做資料表格更新,將在資料庫的一些敏感資料以遮罩字元取代,如「王曉明」--> 「王*明」
2. native2ascii、URL encode/decode、base64 encode/decode、Hex encode/decode
實作用到的技術也很簡單,主要只用到了JSP、JSP custom tag lib、jQuery,
而GAE方面的service有用到JDO API做資料儲存、User Service做登入檢查、Java Mail配合Mail service做建議的電子表單結果寄送。
這類簡單的小程式各位應該也能很快就做出來的,一起來玩玩GAE吧。
http://code.google.com/intl/zh-TW/appengine/
2010年7月28日 星期三
Eclipse在Oracle/Sun Java 6 Update 21上會當掉問題
最近重裝了電腦,並且下載了Eclipse Helios來使用,但很奇怪的是都用沒幾分鐘就當掉,剛開始一直以為是Eclipse的問題,後來才發現是因為Oracle在JDK6u21裡改了Vendor name才造成Eclipse會當掉。
最快的解決方法,直接在eclpse.ini裡加上一行
-XX:MaxPermSize=256m
詳細請參閱:
Latest Java Update Fixes Eclipse Crash Issue
最快的解決方法,直接在eclpse.ini裡加上一行
-XX:MaxPermSize=256m
詳細請參閱:
Latest Java Update Fixes Eclipse Crash Issue
2010年7月17日 星期六
2010年7月4日 星期日
2010年6月30日 星期三
[燒]Tomcat 7釋出
Tomcat7釋出了~
主要支援了最新的Java EE 6規格裡的:
按這裡下載
另外,Java EE 6 Tutorial文件 按這裡 可以找到~
主要支援了最新的Java EE 6規格裡的:
- Servlet 3.0
- JSP 2.2
- EL 2.2
按這裡下載
另外,Java EE 6 Tutorial文件 按這裡 可以找到~
2010年6月29日 星期二
2010年6月28日 星期一
Native2Ascii 程式碼參考
許多framework會使用到.properties檔案來做為多國語言的訊息儲存格式,
而像是非英文語系的語言在存成.properties後還會需要使用JDK內帶的native2ascii.exe將
中文字轉換成unicode十六進位的編碼形式,在runtime時才能正確讀取。
今天心血來潮,想看看native2ascii的原始碼,在google code search找到了一個開源碼版本的JVM Kaffe的native2ascii原始碼可參考,而且程式碼比想像中的簡單與簡潔:
2010年6月27日 星期日
Eclipse 3.6 (Helios) 發佈了
燒燙燙的 Eclipse 3.6 (Helios)發佈了,
下載:
http://www.eclipse.org/downloads/
新增功能Demo影片:
http://eclipse.org/helios/demos.php
2010年6月19日 星期六
Google App Engine開發程式檢視local data store資料方法
在開發Google App Engine程式時,我們會經由JDO/JPA API來將資料寫入data store,
在App Engine上可使用網頁介面的Admin Console來查看我們寫入data store的資料,
但在未部屬上App Engine前,我們在local環境要怎樣查看我們的data store呢?
可直接使用瀏覽器開啟:
http://localhost:8888/_ah/admin/
便可查看~
詳參照:
http://googleappengine.blogspot.com/2009/07/google-app-engine-for-java-sdk-122.html
操作JavaBeans利器 - Commons BeanUtils
Java 專案裡不免常用到JavaBean,而Commons BeanUtils是操作JavaBean的好用工具,
詳細介紹可參考:
而另外一提的是,BeanUtil裡的 PropertyUtils.copyProperties() 相當的好用,
其用法可參考:http://www.blogjava.net/kenzhh/archive/2008/09/03/226592.html
2010年6月18日 星期五
JavaFX composer in NetBeans 6.9
這個展示影片介紹了新的NetBeans 6.9ˇ的JavaFX GUI設計工具- JavaFX composer:
原文請參考:
http://java.dzone.com/polls/does-jfx-composer-satisfy?utm_source=feedburner&utm_medium=feed&
utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)
2010年6月4日 星期五
2010年6月2日 星期三
Will it play in App Engine? 看看你要用的framework和library能不能在AppEngine上運行
Will it play in App Engine?
看看你要用的framework和library能不能在AppEngine上運行:
http://code.google.com/p/googleappengine/wiki/WillItPlayInJava
http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
看看你要用的framework和library能不能在AppEngine上運行:
http://code.google.com/p/googleappengine/wiki/WillItPlayInJava
http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
2010年5月26日 星期三
2010年3月15日 星期一
2010年3月10日 星期三
JBOSS 5.1上使用EJB2與META-INF/jboss.xml的關係
(web client & java client)
1. 沒設定jboss.xml,則用 Object objRef = ctx.lookup("the-ejb-name"); 取得home
2. 若有設定jboss.xml裡的jndi,則會把把Bean綁到global JNDI, 用 Object objRef = ctx.lookup("xx/the-jndi-name"); 取得home
3. jboss.xml範例
1. 沒設定jboss.xml,則用 Object objRef = ctx.lookup("the-ejb-name"); 取得home
2. 若有設定jboss.xml裡的jndi,則會把把Bean綁到global JNDI, 用 Object objRef = ctx.lookup("xx/the-jndi-name"); 取得home
3. jboss.xml範例
<?xml version="1.0"?> <jboss xmlns:xs="http://www.jboss.org/j2ee/schema" xs:schemaLocation=
"http://www.jboss.org/j2ee/schema jboss_5_0.xsd" version="5.0"> <!-- 把Bean綁到global JNDI , 取得用Object objRef = ctx.lookup("ejb/the-jndi-name"); --> <enterprise-beans> <session> <ejb-name>the-ejb-name</ejb-name> <jndi-name>ejb/the-jndi-namer</jndi-name> </session> </enterprise-beans> </jboss>
JBoss 5.1上WebApp叫用EJB2錯誤...
由於工作需要需要學EJB2,便想在JBoss 5.1上作測試,但遇到在
JBOSS 5上的web app呼叫EJB2 SessionBean,出錯:
1. 下列文章指出在jboss 4的解決設定方法:
http://forums.sun.com/thread.jspa?threadID=557629
http://www.javaworld.com.tw/roller/secretguest0824/entry/
jboss_ejb_%E9%96%8B%E7%99%BC%E6%B3%A8%E6%84%8F%E4%
BA%8B%E9%A0%85%E6%95%B4%E7%90%86_ejb2_0
http://xmh517.javaeye.com/blog/209056
2. 下列文章指出 此問題應該是 classloader策略造成的問題:
http://daivd.tao.jdon.com/jivejdon/thread/35659
3. 下列文章指出 jboss 5上的web程式設定classloader策略的方法:
http://community.jboss.org/wiki/useJBossWebClassLoaderinJboss5
所以我們要做的就是在WAR的web-inf下新增一個 jboss-classloading.xml檔案,讓其classloading path domain能與EJB的domain區隔開來,其內容為:
<?xml version="1.0" encoding="UTF-8"?>
<classloading xmlns="urn:jboss:classloading:1.0"
name="ejb01_web.war"
domain="DefaultDomain"
parent-domain="Ignored"
export-all="NON_EMPTY"
import-all="true">
</classloading>
JBOSS 5上的web app呼叫EJB2 SessionBean,出錯:
javax.ejb.EJBException: Invalid invocation, check your deployment packaging, method=public .....
1. 下列文章指出在jboss 4的解決設定方法:
http://forums.sun.com/thread.jspa?threadID=557629
http://www.javaworld.com.tw/roller/secretguest0824/entry/
jboss_ejb_%E9%96%8B%E7%99%BC%E6%B3%A8%E6%84%8F%E4%
BA%8B%E9%A0%85%E6%95%B4%E7%90%86_ejb2_0
http://xmh517.javaeye.com/blog/209056
2. 下列文章指出 此問題應該是 classloader策略造成的問題:
http://daivd.tao.jdon.com/jivejdon/thread/35659
3. 下列文章指出 jboss 5上的web程式設定classloader策略的方法:
http://community.jboss.org/wiki/useJBossWebClassLoaderinJboss5
所以我們要做的就是在WAR的web-inf下新增一個 jboss-classloading.xml檔案,讓其classloading path domain能與EJB的domain區隔開來,其內容為:
<?xml version="1.0" encoding="UTF-8"?>
<classloading xmlns="urn:jboss:classloading:1.0"
name="ejb01_web.war"
domain="DefaultDomain"
parent-domain="Ignored"
export-all="NON_EMPTY"
import-all="true">
</classloading>
這篇不關技術~
今天在ZDNet看到一篇報導:
看了這篇文章覺的:
Jonathan Schwartz幹得好~
(以上純屬小弟個人觀點..)
[看HTC被蘋果告] 前昇陽CEO提跟蘋果、微軟交手侵權內幕
撇開技術好壞不講,某些大公司財大氣粗總是拿法律來嚇人,看了這篇文章覺的:
Jonathan Schwartz幹得好~
(以上純屬小弟個人觀點..)
2010年3月7日 星期日
JavaMail 郵件附檔中文檔名亂碼解決
JavaMail 郵件附檔中文檔名亂碼解決方法~
請參考:
http://www.javaworld.com.tw/jute/post/view?bid=6&id=200880&sty=3
重點在49行的:
請參考:
http://www.javaworld.com.tw/jute/post/view?bid=6&id=200880&sty=3
重點在49行的:
mbp2.setFileName(MimeUtility.encodeText(fds.getName(), "MS950", "B"));
2010年2月7日 星期日
2010年1月27日 星期三
2010年1月26日 星期二
2010年1月11日 星期一
JSF/Facelet中使用JSTL
在JSF內使用Facelet並要使用JSTL,要注意:
JSTL的URI是 http://java.sun.com/jstl/core,
不能寫成http://java.sun.com/jsp/jstl/core
JSTL的URI是 http://java.sun.com/jstl/core,
不能寫成http://java.sun.com/jsp/jstl/core
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich" xmlns:c="http://java.sun.com/jstl/core"> .....(略)
2010年1月3日 星期日
Apache HttpClient 4.x版
新的HttpClient 4.x版(API)在使用上與舊有的3.x版似乎有很大的差異,例如HTTP Post表單資料要設定form parameter時的用法:
4.x似乎在資料結構與使用上繁雜許多,除此之外,還有許多不同之處,詳見
http://hc.apache.org/httpcomponents-client/tutorial/html/
然而在4.x版本如上使用3.x的寫法,跑得起來嗎?答案是可以,但是非常不幸的某些加進去的parameter會不見(到底是被其他parameter覆蓋掉還是內部運作時被誤刪掉不得而知), 所以建議使用4.x版還是參照著4.x的文件內的寫法來使用才好.....
|
//HttpClient 4.x |
4.x似乎在資料結構與使用上繁雜許多,除此之外,還有許多不同之處,詳見
http://hc.apache.org/httpcomponents-client/tutorial/html/
然而在4.x版本如上使用3.x的寫法,跑得起來嗎?答案是可以,但是非常不幸的某些加進去的parameter會不見(到底是被其他parameter覆蓋掉還是內部運作時被誤刪掉不得而知), 所以建議使用4.x版還是參照著4.x的文件內的寫法來使用才好.....
2010年1月1日 星期五
趨勢科技關於雲端運算與Hadoop的訓練影片
1. Cloud computing overview
2.Introduction to Hadoop
3.Introduction to MapReduce
4.Introduction to HBase
Cloud Computing Overview from trend09contest on Vimeo.
2.Introduction to Hadoop
Introduction to Hadoop from trend09contest on Vimeo.
3.Introduction to MapReduce
Introduction to MapReduce from trend09contest on Vimeo.
4.Introduction to HBase
Introduction to HBase from trend09contest on Vimeo.
訂閱:
文章 (Atom)