EJB技术规范中明确提到,在使用会话BEAN的时候……

EJB技术规范中明确提到,在使用会话BEAN的时候不能使用I/O操作,启动线程,请问这是为什么?我在许多应用框架中都看到有人在EJB中使用SPRING,HIBERNATE,而这些框架都需要读取配置文件的信息的,这样使用不是与EJB的规范冲突吗?
为什么没有人回答,是我问的不清楚还是没有人知道呀?
i/o操作主要是写,在一个分布式环境,你的EJB可能在多台服务器运行,在一台服务器上写i/o后,如果在其他服务器就读取不到。

启动线程本身是J2EE整个规范都不推荐的,包括在jsp/servlet环境下,因为jsp/servlet就是封装了底层线程,不让普通用户接触线程,由容器服务器管理线程调度,如果应用程序直接介入线程,就乱套了,设计上破坏封装;性能上也不能保证。

感谢,感谢。
也就是说当保证ejb在一台服务器上部署时,是可以使用i/o操作的了。那么如果需要使用线程,比如在weblogic中,通过weblogic中的“启动”,是否可以解决这个问题?
i/o和线程启动等需求都是可以通过其他方式实现的,不是说一定得这么做。
能具体举一个例子吗?在ejb环境下怎样才是正确操作I/O,Thread的解决方案?
这个问题困扰我很长时间了,恳请Banq指点,引引路。先谢谢了。
在jsp/servlet环境下,如果启动线程,在初始化servlet时启动线程是不是也是解决方案之一?在ejb容器时,在setSessionContext中启动线程是不是也可以呢,或者使用静态类初始化时来启动线程?这些是不是都可以保证线程启动的唯一性呢?