KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfox > ejb > connector > EJBHandler


1 /*
2  * Copyright (c) 2004 Your Corporation. All Rights Reserved.
3  */

4
5 package org.jfox.ejb.connector;
6
7 import org.jfox.ioc.connector.AbstractHandler;
8 import org.jfox.ioc.connector.Container;
9 import org.jfox.ioc.connector.Invocation;
10
11 /**
12  * 执行 EJB 调用
13  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
14  */

15
16 public class EJBHandler extends AbstractHandler {
17
18     public EJBHandler(Container container) {
19         super(container);
20     }
21
22     public Class JavaDoc getInvocationClass() {
23         return EJBInvocation.class;
24     }
25
26     public Object JavaDoc execute(Invocation invocation) throws Throwable JavaDoc {
27         if(!isInitialized()) {
28             throw new Exception JavaDoc("Handler not started.");
29         }
30         ClassLoader JavaDoc oldCl = Thread.currentThread().getContextClassLoader();
31         /**
32          * 需要设置成 Module 的 LocalClassLoader,
33          * 否则 Module 里面没有预加载的类会找不到
34          */

35         ClassLoader JavaDoc cl = this.getClass().getClassLoader();
36         Thread.currentThread().setContextClassLoader(cl);
37         try {
38             return doExecute(invocation);
39         }
40         finally {
41             Thread.currentThread().setContextClassLoader(oldCl);
42         }
43
44     }
45
46     /**
47      * 交给EJBContainer调用该方法
48      * @param invocation
49      * @return
50      * @throws Throwable
51      */

52     protected Object JavaDoc doExecute(Invocation invocation) throws Throwable JavaDoc {
53 /*
54         EJBObjectId ejbObjectId = (EJBObjectId) invocation.getObjectId();
55         String ejbName = ejbObjectId.getEjbName();
56         Bucket bucket = ((EJBContainer)getContainer()).getBucket(ejbName);
57         if(bucket instanceof StatefulBucket){
58             
59         }
60 */

61         return ((EJBContainer)getContainer()).invoke((EJBInvocation)invocation);
62     }
63
64     public static void main(String JavaDoc[] args) {
65
66     }
67 }
68
Popular Tags