从Glassfish 2升级到Glassfish 3.异常不再回滚事务

时间:2014-03-06 18:52:25

标签: java java-ee glassfish glassfish-3 glassfish-2.x

我正在尝试将我的耳朵从glassfish 2升级到glassfish 3.我们曾经将会话bean和我们的实体都放在一个jar文件中。 I've learned我需要将它们放在单独的jar文件中才能部署到glassfish 3.我这样做的方法是创建一个新的jar并移动会话bean,ejb-jar.xml,{{ 1}}和persistence.xml在其中。会话bean lib将旧的lib作为依赖项。旧的lib仍然包含我们使用的自定义sun-ejb-jar.xml类和实体以及以前的所有其他类。

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

以下是其中一个例外情况的示例:

Exception

1 个答案:

答案 0 :(得分:0)

这是一个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不需要这样做。