KickJava   Java API By Example, From Geeks To Geeks.

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


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

4
5 package org.jfox.ejb.handler;
6
7 import java.lang.reflect.Method JavaDoc;
8 import java.util.Iterator JavaDoc;
9 import javax.ejb.EJBException JavaDoc;
10 import javax.ejb.EnterpriseBean JavaDoc;
11 import javax.ejb.MessageDrivenBean JavaDoc;
12
13 import org.jfox.ejb.Bucket;
14 import org.jfox.ejb.MDBBucket;
15 import org.jfox.ejb.connector.EJBInvocation;
16 import org.jfox.jms.message.JMSMessage;
17
18 /**
19  * 一般是最后一个 invoker
20  * invokeHome: 生成 EJBObject 的 invoker
21  * invokeBean: 执行实际的方法
22  *
23  * @author <a HREF="mailto:young_yy@hotmail.com">Young Yang</a>
24  */

25
26 public class Z5_MDBHandler extends AbstractHandler {
27
28     public Object JavaDoc invokeHome(Bucket bucket, EJBInvocation invocation, Iterator JavaDoc iter) throws Exception JavaDoc {
29         throw new EJBException JavaDoc("MessageDrivenBean has no EJBHome.");
30     }
31
32     public Object JavaDoc invokeBean(Bucket bucket, EJBInvocation invocation, Iterator JavaDoc iter) throws Exception JavaDoc {
33         Method JavaDoc method = invocation.getMethod();
34         EnterpriseBean JavaDoc bean = invocation.getBean();
35         if(method.getName().equals("onMessage")) {
36             Object JavaDoc[] args = invocation.getArgs();
37             String JavaDoc sessionId = (String JavaDoc)args[0];
38             JMSMessage msg = (JMSMessage)args[2];
39             ((MDBBucket)bucket).onMessage(sessionId,(MessageDrivenBean JavaDoc)bean,msg);
40             return null;
41         }
42         else {
43             return method.invoke(bean, invocation.getArgs());
44         }
45     }
46
47     public static void main(String JavaDoc[] args) {
48
49     }
50 }
51
Popular Tags