2015-07-26 3 views
2

У меня есть некоторая путаница в использовании JTA в Spring Framework на Apache Tomcat, и я надеюсь, что кто-то выяснит, как после многих исследований я пока не могу найти правильный ответ.Поддерживает ли Apache Tomcat 6 JTA?

Я занимаюсь разработкой веб-приложений с использованием Spring Framework, работает на Apache Tomcat 6.

Я где-то читал, что в Spring делает поддержку JTA, но он делегирует на основной сервер приложений JavaEE. Теперь я смущен, потому что я Tomcat не является полным сервером приложений JavaEE - это просто контейнер сервлетов, и, как я считаю, он не обеспечивает реализацию JTA, как полный сервер приложений JavaEE (Glassfish/Wildfly и т. Д.). делает.

Но когда я делаю что-то вроде следующего аспекта сделки его работы:

@Transactional 
public class ServiceClassImpl implements ServiceInterface { 
// code here that involves transactions e.g. calling DAO code 
... 
} 

Итак, я запутался. Надеюсь, кто-то просветит меня.

+0

Возможный дубликат [Как использовать поддержку JTA в Tomcat 6 для Hibernate?] (Http://stackoverflow.com/questions/2552612/how-to-use-jta-support-in-tomcat-6-for- hibernate) –

+0

Подобные ингредиенты, но разные рецепты. Я думаю, что этот вопрос спрашивает, как использовать JTA на Tomcat 6. В то время как мой вопрос ставит под вопрос, является ли Tomcat 6 уже разрешенным JTA, потому что, когда я использую аннотацию JavaEE @Transactional, она работает – SoftwareDeveloper

+0

. Что делает тот факт, что ваш код работает делать с JTA? – zeroflagL

ответ

2

Ответ: НЕТ. Tomcat 6.x (7 & 8) не предоставляют JTA из коробки, потому что у них нет менеджера транзакций, который требуется как отдельный компонент для мониторинга нескольких ресурсов (например, источников данных).

Упомянутый ответ How to use JTA support in Tomcat 6 for Hibernate? уже дает список дополнительных менеджеров транзакций JTA, которые могут использоваться вместе с Tomcat.

Spring поддерживает декларативное управление транзакциями через диспетчер транзакций платформы (TM) и предоставляет некоторые реализации (например, источники данных), которые делают работу @Transactional на одном ресурсе без дополнительной TM.

Understanding the Spring Framework transaction abstraction предоставляет более подробную информацию, а Spring Boot может быть легко сконфигурирован для запуска менеджеров транзакций Atomikos или Bitronix на встроенном Tomcat.

-1

JTA предоставляет вам поддержку распределенных транзакций, но если JTA недоступна, как в Tomcat, вы все равно можете использовать локальные транзакции JDBC.

Смежные вопросы