容器管理的Bean事务配置是在部署文件中的,检查你在部署中对于该方法的事务设置。

解决方案 »

  1.   

    事务设置肯定没有问题,jbuilder下面生成的容器管理的.
      

  2.   

    建议:把这段代码改为Bean控制事务,看看有没有问题,如果没有,还是看看JB生成的配置文件;如果有,就不知道了。
      

  3.   

    你把CreateException 封装成EJBException再抛给容器
      

  4.   

    在EJB规范中定义了有关事务的细节,简单来说如果使用cmtd(容器管理事务分界)在程序中抛出应用程序级异常,如CreateException,FinderException等,容器是不会自动回滚事务的。容器只对系统级异常或Runtime(运行期)异常,则容器会自动回滚事务。所以,你要想实现在捕获到应用程序异常时容器,则要封装为系统运行期异常(EJBException)后抛出。容器会根据调用者与被调用者的关系返回EJBException或RemoteException。具体可以参考jdk文档以及相关规范。
      

  5.   

    1)首先将sessionbean的事务也设成容器管理,事物属性都选择为required
    2)然后在调用create()方法的方法的catch块中throws EJBException