繁体   English   中英

从Glassfish 2升级到Glassfish3。例外不再回滚事务

[英]Upgrading from Glassfish 2 to Glassfish 3. Exceptions no longer roll back transactions

我正在尝试将我的耳朵从glassfish 2升级到glassfish3。我们以前将会话bean和实体都放在一个jar文件中。 我了解到我需要将它们放在单独的jar文件中,以便能够部署到glassfish3。我这样做的方法是创建一个新的jar并移动会话bean ejb-jar.xmlpersistence.xml和其中的sun-ejb-jar.xml 会话bean lib具有旧的lib作为依赖项。 旧的lib仍然包含我们使用过的自定义Exception类,实体以及几乎所有以前存在的所有内容。

但是我从集成测试中注意到的是,当引发异常时,事务不会像以前那样回滚。 我现在仍在部署GF2。 除了这个微妙的问题,一切似乎都在起作用。 如何解决此问题? 我是否需要将这些Exception类移动到会话bean jar中?

这是这些异常之一的示例:

@ApplicationException(rollback=true)
public class MessageOutOfOrderException extends ConditionException { //this is the one that gets thrown
//...
}

@ApplicationException(rollback=true)
public class ConditionException extends Exception { //this is the parent.  It also gets thrown directly sometimes
//...
}

这是一个GF2错误: https : //java.net/jira/browse/GLASSFISH-5183

解决方法是修改ejb-jar.xml并在其中添加如下代码:

<assembly-descriptor>
    <application-exception>
        <exception-class>com.blah.EntityAccessException</exception-class>
        <rollback>true</rollback>
    </application-exception>

我希望GF3不需要这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM