EJB deployment in JBoss (in Chinese)

最近在用EJB3 写一个简单的通讯录,其中EJB3 是由许多部分组成。一个看似简单的通讯录,是通过好多道程序才来实现的。以下是EJB deployment 的解析。 我有付上jboss reference 相关内容:http://docs.jboss.org/jbossas/jboss4guide/r5/html/ch5.chapter.html 有兴趣的人可以作梗深入的探索。

1。当EJB.jar 要开始运行时, jboss deployment 开始扫描,根据jboss_service.xml, jboss deployment 找到运行路径(deploy directory), 之后找出正确的deployer (EJB deployer).
2。然后这个EJB deployer 再找相关的descriptors, annotations 来调试其 EJB container.
3。在这个 EJB container 里, 有 interface, interceptors, Bean (interface 的逻辑, 真正在算的部分), server invoker。 EJB container 会分化出一个 client container.
4。Client container 有interface, interceptors, invoker, 但是没有 Bean. 当client container 被分化后,它马上和 naming service 注册。
Naming service 其实是一个hash table, key 是 interface 的名字, 值是整个client container 的复制。
5。当用户 (servlet)需要用到那个interface 的时候,其实用户没有直接用interface, 而是整个client container (因为 naming service 把二者绑到一起了).
6。Client container 启动之后, invoke (object, methods, arguments), 经过一系列interceptors (例如, 安全。。。)client container 就一直加信息到invoke 里。最后, invoke 带着必须的终端客户资料, 启动 server invoker
7。到了EJB container, sever invoker 再过滤并认证客户资料,最后bean 算出相应的结果,结果在从原路返回,(EJB container: bean-> interceptors-> Client container: interceptors-> interface-> servlet)

我马上会陆续的把我的通讯录上传, 看到实际的implementation 会比较好理解。

古诗