部落客廣告聯播
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.
2009年12月11日 星期五
WebApp從tomcat遷移到jboss的data source問題
最近將WebApp從tomcat包成war檔移到jboss上,但卻履出現deploy failed失敗訊息,
後來發現是data source問題,若web.xml裡面有<resource-ref>參考到資料來源的話,
就要多一個jboss-web.xml設定jndi連結,詳細請參考:
JBoss deployment failure - missing resource-ref element in web.xml
How to configure the Jira DataSource on JBoss
後來發現是data source問題,若web.xml裡面有<resource-ref>參考到資料來源的話,
就要多一個jboss-web.xml設定jndi連結,詳細請參考:
JBoss deployment failure - missing resource-ref element in web.xml
How to configure the Jira DataSource on JBoss
2009年11月18日 星期三
JPA/hibernate 使用MySQL讓資料為UTF-8 encoding
使用JPA/hibernate時若要讓預設資料庫的encoding為utf-8,並預設engine為innodb,則設定my.cnf在[mysqld]區段加上:
default-character-set=utf8
default-collation=utf8_general_ci
default-storage-engine=innodb
另外,Datasource JDBC url要加上
?characterEncoding=UTF-8&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8
default-character-set=utf8
default-collation=utf8_general_ci
default-storage-engine=innodb
另外,Datasource JDBC url要加上
?characterEncoding=UTF-8&useUnicode=true&connectionCollation=utf8_general_ci&characterSetResults=utf8
2009年10月27日 星期二
2009年10月19日 星期一
2009年10月18日 星期日
2009年10月15日 星期四
Liferay Portal繁體中文翻譯外掛
Liferay Portal是一套功能相當齊全的open source portal server,
但國內似乎不是很多人用,
然而其內附的介面中文翻譯說真的是辭不達意容易令人造成誤解(或不解),
我猜應該是外國人用翻譯軟體做的。
今小弟重新整理了zh_TW的中文翻譯,並做成了外掛,放在這裡,
歡迎有需要的人下載使用。
安裝方法 -
將此 WAR 檔案放到 ${liferay_home_dir}/deploy 後,
Liferay portal會自動進行安裝,
待安裝完後,請刪除Tomcat的Work內的所有檔案,重啟Tomcat。
關於如何使用Plug-in SDK 來修改語言 properties可參考:
http://wikis.sun.com/display/websynergy/
Customizing+Language.properties+using+hooks+plugin
但國內似乎不是很多人用,
然而其內附的介面中文翻譯說真的是辭不達意容易令人造成誤解(或不解),
我猜應該是外國人用翻譯軟體做的。
今小弟重新整理了zh_TW的中文翻譯,並做成了外掛,放在這裡,
歡迎有需要的人下載使用。
安裝方法 -
將此 WAR 檔案放到 ${liferay_home_dir}/deploy 後,
Liferay portal會自動進行安裝,
待安裝完後,請刪除Tomcat的Work內的所有檔案,重啟Tomcat。
關於如何使用Plug-in SDK 來修改語言 properties可參考:
http://wikis.sun.com/display/websynergy/
Customizing+Language.properties+using+hooks+plugin
2009年10月11日 星期日
2009年10月6日 星期二
OpenSSO安裝問題
將OpenSSO WAR檔上到了tomcat,開啟Web介面執行第一次設定時,
使用簡易設定(使用內建OpenDS)會發生NullPointException,
tomcat console會出現「@BASE_DIR@\install.log找不到檔案路徑」訊息,
經百般找尋解決方法,發現到windows 控制台設定地區選項先改為英語-美國,
確認後重啟tomcat,開啟Opensso Web介面,再次執行配置就OK了,
接著再次將地區選項設回來,即可正常使用。
問題在於內建的OpenDS在叫用java的KeyTool工具產生金鑰時,
若我們當前使用者設定的地區非為英文語系者,則Keytool產生的提示訊息非為英文語系,
則此時便會無法正常產生金鑰,便會導致此失敗~~
詳請見:
http://markmail.org/message/5ne5lcjzoezxarlz#query:Error%20while%20attempting%20to%20generate%20a%20self-signed%20certificate%20ads-certificate%20in%20the%20trust%20store%20file%20config%2Fads-truststore%3A%20KeyStoreException%28Multi-prompt%20didn%27t%20match+page:1+mid:sjwepz5abub4nbmp+state:results
使用簡易設定(使用內建OpenDS)會發生NullPointException,
tomcat console會出現「@BASE_DIR@\install.log找不到檔案路徑」訊息,
經百般找尋解決方法,發現到windows 控制台設定地區選項先改為英語-美國,
確認後重啟tomcat,開啟Opensso Web介面,再次執行配置就OK了,
接著再次將地區選項設回來,即可正常使用。
問題在於內建的OpenDS在叫用java的KeyTool工具產生金鑰時,
若我們當前使用者設定的地區非為英文語系者,則Keytool產生的提示訊息非為英文語系,
則此時便會無法正常產生金鑰,便會導致此失敗~~
詳請見:
http://markmail.org/message/5ne5lcjzoezxarlz#query:Error%20while%20attempting%20to%20generate%20a%20self-signed%20certificate%20ads-certificate%20in%20the%20trust%20store%20file%20config%2Fads-truststore%3A%20KeyStoreException%28Multi-prompt%20didn%27t%20match+page:1+mid:sjwepz5abub4nbmp+state:results
訂閱:
文章 (Atom)