seam中使用多线程的问题
我用的seam架构的项目,目前想在系统中让服务器启动后就自动启动一个多线程的任务。
我现在用的seam组件类A的一个方法去循环实例化多个继承自Thread的线程类B,而线程类中的run方法又调用了A的一些数据保存方法。所以我在B中实例化了A类,我试了三种方式,
1:以new 关键字实例化
2:Component.getInstance("XXX",true);
3:@In(value="XXX",create=true)
第二种和第三种方式我运行就报空指针,类没有被实例化。而以第一种方式实例化后,A类所牵涉的seam组件类中的数据库操作有时候会报错,有时候又不会。我估计是seam的事务被打乱的原因,报了很多奇怪的错,比如我query.getResultList()的时候,报连接已经关闭,而另外的类里有时会报得到的List是空。而对于我用线程查询出来的集合我把操作集合方法注释后报could not read column value from result set: BATCHS; ORA-01001: 无效的游标。而程序偶尔跑得很正常,该更新的更新,该删除的删除。但是大多时候,是在不固定的地方,报操作过程中用的seam组件的引用为空指针。
还请各位高手指点一下