我正在使用 jboss 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)
。并且需要获取bean的业务接口。这是事务管理所必需的。所以我有:
@Local
public interface MyBeanInterface {
void transactionalMethod();
}
@Stateless
public class MyBean implements MyBeanInterface {
@Resource
private SessionContext context;
private int aState;
public void someMethod() {
aState = 42;
context.getBusinessObject(MyBeanInterface.class).transactionalMethod();
}
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public void transactionalMethod() {
System.out.println(aState); // 0!!!!!
}
}
出于某种原因,我没有得到相同的 bean,但是创建了新的 bean。这是灾难性的,因为transactionalMethod
需要状态变量值才能正确执行。
我在做什么错,或者那是jboss的错误?顺便说一句,有一个错误会影响通过 bean 的类获取业务对象的能力:https ://issues.jboss.org/browse/EJBTHREE-2126 。但是不确定它是否与我的问题有关。