部落客廣告聯播

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"));