Я пытаюсь обновить свое ухо с Glassfish 2 до Glassfish 3. Раньше у нас были наши сеансовые компоненты и наши сущности в одном файле jar. Я узнал, что мне нужно поместить их в отдельные файлы jar, чтобы можно было развернуть на Glassfish 3. Как я сделал это, создав новую банку и переместив сеансовые компоненты, ejb-jar.xml
, persistence.xml
и sun-ejb-jar.xml
в них. Библиотека сессионного компонента имеет старую библиотеку в качестве зависимости. Старая библиотека по-прежнему содержит пользовательские Exception
классы, которые мы использовали, сущности и почти все остальное, что было раньше.
Но что я заметил из интеграционного теста, так это то, что когда выбрасываются исключения, транзакции не откатываются, как раньше. Сейчас я все еще развертываю GF2. Кроме этой тонкой проблемы, все, кажется, работает. Как решить эту проблему? Нужно ли мне перемещать эти Exception
классы в банку сессионного компонента?
Вот пример того, как выглядит одно из этих исключений:
@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
//...
}