部落客廣告聯播

2010年6月28日 星期一

Native2Ascii 程式碼參考

許多framework會使用到.properties檔案來做為多國語言的訊息儲存格式,
而像是非英文語系的語言在存成.properties後還會需要使用JDK內帶的native2ascii.exe將
中文字轉換成unicode十六進位的編碼形式,在runtime時才能正確讀取。

今天心血來潮,想看看native2ascii的原始碼,在google code search找到了一個開源碼版本的JVM Kaffe的native2ascii原始碼可參考,而且程式碼比想像中的簡單與簡潔:

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年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範例
<?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,出錯:
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看到一篇報導:
[看HTC被蘋果告] 前昇陽CEO提跟蘋果、微軟交手侵權內幕
撇開技術好壞不講,某些大公司財大氣粗總是拿法律來嚇人,
看了這篇文章覺的:
Jonathan Schwartz幹得好~

(以上純屬小弟個人觀點..)

2010年3月7日 星期日

JavaMail 郵件附檔中文檔名亂碼解決

JavaMail 郵件附檔中文檔名亂碼解決方法~
請參考:
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日 星期日