KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > ejb > handler > A0_ThreadContextHandler


1 package org.jfox.ejb.handler;
2
3 import java.util.Iterator JavaDoc;
4
5 import org.jfox.ejb.Bucket;
6 import org.jfox.ejb.connector.EJBInvocation;
7
8 /**
9  * set the ThreadContextClassLoader to Bean's load ClassLoader
10  * when finally, restore the the previous ThreadContextClassLoader
11  * * because Bean can refrence the class loaded only use it's J2EEClassLoader
12  * <p/>
13  * and set the Thread's current ejb name for Enterprise Context
14  *
15  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
16  */

17
18 public class A0_ThreadContextHandler extends AbstractHandler {
19
20     public Object JavaDoc invokeHome(Bucket bucket, EJBInvocation invocation, Iterator JavaDoc iter) throws Exception JavaDoc {
21         ClassLoader JavaDoc oldLoader = Thread.currentThread().getContextClassLoader();
22         Thread.currentThread().setContextClassLoader(bucket.getEJBClassLoader());
23
24         try {
25             return super.invokeHome(bucket, invocation, iter);
26         }
27         finally {
28             Thread.currentThread().setContextClassLoader(oldLoader);
29         }
30     }
31
32     public Object JavaDoc invokeBean(Bucket bucket, EJBInvocation invocation, Iterator JavaDoc iter) throws Exception JavaDoc {
33         ClassLoader JavaDoc oldLoader = Thread.currentThread().getContextClassLoader();
34         Thread.currentThread().setContextClassLoader(bucket.getEJBClassLoader());
35         try {
36             return super.invokeBean(bucket, invocation, iter);
37         }
38         finally {
39             Thread.currentThread().setContextClassLoader(oldLoader);
40         }
41
42     }
43
44     public static void main(String JavaDoc[] args) {
45
46     }
47 }
48
49
Popular Tags