Tomcat + CDI + JSF2, но где моя транзакция?

Моя компания использует tomcat 7 в качестве распределенной среды. Я бы хотел, чтобы JSF2 и CDI работали вместе на tomcat 7. Это возможно без особых сюрпризов, как описано здесь: http://www.theserverside.com/tutorial/Working-with-CDI-and-JSF-20-on-Tomcat-7-Configuring-Weld

Моя проблема связана с транзакцией, без решения Java EE 3 мне приходит:

  1. Сделайте это вручную: em.getTransaction (). Begin () ...
  2. Используйте перехватчик CDI, созданный мной, или такие, как CODI http://matthiaswessendorf.wordpress.com/2010/11/20/enterprise-java-without-ejbs-but-with-cdi-and-myfaces-codi/
  3. Используйте весеннюю транзакцию, но, насколько я знаю, между JSR 299 и 330 есть проблема, и для работы нужен клей: http://matthiaswessendorf.wordpress.com/2010/05/06/using-cdi-scopes-with-spring-3/

Так куда бы ты пошел на моем месте? CODI мне кажется милым.

Спасибо


person bodtx    schedule 08.01.2013    source источник


Ответы (2)


DeltaSpike :) Хотя, если вы ищете что-то за пределами инкубатора Apache, CODI найдет работать хорошо.

person LightGuard    schedule 09.01.2013
comment
Пользователь Deltaspike здесь. Он у нас в производстве, и это здорово. Afaik выпущенные модули Deltaspike готовы к производству, но интерфейсы и т. Д. Могут еще измениться. Однако это действительно только положительная сторона imo (то есть работает хорошо, теперь может стать лучше :) - person Karl Kildén; 09.01.2013
comment
Да, до 1.0 мы оставляем за собой возможность изменять общедоступные API, но в прошлом году я думаю, что это произошло только один раз. - person LightGuard; 09.01.2013

Перейдите на Google Guice, как я :)

Для последнего проекта я использую JSF2 + Primefaces + Google Guice + EclipseLink.

Это решение упрощает очистку кода и делает его готовым к модульному тестированию. (с TestNG)

person Peerapat A    schedule 09.01.2013
comment
Я ничего не делал с Guice, есть ли у него контроль транзакций? Я думал, это просто DI. - person LightGuard; 09.01.2013
comment
У Guice есть транзакция, просто поместите @Transaction в метод. - person Peerapat A; 08.02.2013