JBoss4.0.3/JBoss4.0.4已经放弃对EJB2.x正常JNDI调用,也就是说:正常的EJB2.x项目在JBoss4.0.2以上版本已经不能正常运行,我已经亲自测试过。
JBoss4.0.2以上版本已经在EJB3路线义无反顾走下去,看来JBoss为了和Spring+Hibernate血拚,已经赤膊上阵了。
从EJB编写和调用上看:EJB3依靠JDK5.0和IOC或称依赖注射实现简化:
如调用变成如下:
public abstract class AbstractStoreAction extends Action
{
@EJB
protected IMusicStore store;
...
}
这种简化只是编程简化,运行时的EJB容器没有被简化掉,下面讨论EJB3和Spring或者JdonFramework区别:就是运行时是专门容器好,还是没有容器好。前者依靠专门容器可实现JNDI环境进而实现分布式计算;后者则只能依附调用者容器,如果调用者可以实现分布式,它也能够。