jboss下用sessionBean的container控制事务不起作用?详见>>

03-07-17 wy0502

我主要运用了sessionBean>DAOFactory>DAO+DB方式,没有用entity Bean

我现在的问题是:

我有一个方法中有两个insert,其中第二个insert出现错误,则第一个insert仍能把数据更新进数据库。

方法大概如下:

public void insert() {

DataSource ds = ServiceLocator.getInstance().getDataSource(JNDINames.DATABASE_NAME);

con = ds.getConnection();

insert1(con);

insert2(con);

}

我的ejb-jar.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

<ejb-jar>

<enterprise-beans>

<session>

<display-name>CarFacade</display-name>

<ejb-name>CarFacade</ejb-name>

<local-home>com.cc.cas.business.CarFacadeLocalHome</local-home>

<local>com.cc.cas.business.CarFacadeLocal</local>

<ejb-class>com.cc.cas.business.CarFacadeEJB</ejb-class>

<session-type>Stateless</session-type>

<transaction-type>Container</transaction-type>

</session>

</enterprise-beans>

<assembly-descriptor>

<container-transaction>

<method>

<ejb-name>CarFacade</ejb-name>

<method-name>*</method-name>

</method>

<trans-attribute>Required</trans-attribute>

</container-transaction>

</assembly-descriptor>

</ejb-jar>

为什么不行呢?,我认为ejb的配置没问题,是不是出在其它地方了。我以前在weblogic下基本上也是这么作的,可以呀?