BBS水木清华站∶精华区

发信人: kywu (忍耐和等待), 信区: Java        
标  题: EJB1.1的一些限制 
发信站: BBS 水木清华站 (Thu Dec 14 11:07:39 2000) 
 
很是不爽 ;-(( 
 
 
下面列举了一些EJB1.1规范的编程限制: 
 
 
Enterprise bean不允许管理线程和线程组。不能启动一个新的线程, 
不能继续一个挂起的线程,也不允许中断或挂起一个正在运行的线程。 
另外,Enterprise bean不能改变一个线程的优先级,也不能改变线程的名字。  
 
 
Enterprise bean不能使用既可读又可写的静态的字段。 
但可以使用只读的静态的字段。这样,所有的静态字段就必须声明为final。  
 
 
Enterprise bean不允许使用线程同步原语来同步多个实例的执行。  
 
 
Enterprise bean不能使用java的AWT函数来输出信息显示到屏幕。 
也不能从键盘接受信息。  
 
 
Enterprise bean也不能使用java.io包来访问文件系统的文件和目录。  
 
 
Enterprise bean应该尽量少使用sockets。特别的,Enterprise bean 
不能够监听Sockets,不能接受Socket上的连接,或使用Socket来进行广播。 
也不应该使用由SeverSocket,Socket建立的Socket工厂,或者由URL使用的流工厂。  
 
 
Enterprise bean不能访问classes或package,也不能获得关于classes的信息。 
在某种程度上不允许通过Java程序设计语言。或者说,classes对Enterprise bean 
是不可用的。  
 
 
Enteprise bean通常不允许访问环境函数,这些环境函数通常是由容器来控制。 
例如:产生一个类装载器,访问或者修改上下文,设置或产生安全管理器, 
停止JVM,改变输入,输出或错误流。  
 
 
Enterprise bean不能为一段代码获得安全方针信息,否则会危及安全。  
 
 
Enterprise bean不能装载本地库。  
 
 
Enterprise bean不能在package中定义类。这个功能由于安全的原因被容器所保留。  
 
 
Enterprise bean不能使用子类或Java Serialiazation Protocol中的对象取代特性。  
 
 
如果Enterprise bean使用了this作为参数或方法的返回值,需要万分小心。 
使用SessionContext.getEJBObject()或EntityContext.getEJBObject来传递结果 
更安全一些。  
 
 
Enterprise bean不允许改变对象的安全配置。例如,不允许改变它的 
java.security.Identify。任何这样的企图都会抛出一个 
java.security.SecurityException异常。  
 
 
-- 
白帆,草鞋,梦的衣裳, 
我要去流浪... 
 
 
※ 来源:·BBS 水木清华站 smth.org·[FROM: 162.105.184.148] 

BBS水木清华站∶精华区