【问题标题】:Tomcat + CDI + JSF2 but where's my transaction?Tomcat + CDI + JSF2 但我的交易在哪里?
【发布时间】:2012-12-22 20:56:16
【问题描述】:

我的公司有 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. 使用 spring 事务,但据我所知 JSR 299 和 330 之间存在问题,它需要一些胶水才能工作:http://matthiaswessendorf.wordpress.com/2010/05/06/using-cdi-scopes-with-spring-3/

如果你是我,你会去哪里? CODI 对我来说似乎不错。

谢谢

【问题讨论】:

    标签: java spring transactions cdi codi


    【解决方案1】:

    DeltaSpike :) 不过,如果您正在寻找 Apache 孵化器之外的东西,CODI 会很好用。

    【讨论】:

    • Deltaspike 用户在这里。我们有它在生产中,它很棒。 Afaik 发布的 Deltaspike 模块已准备好生产,但接口等可能仍会发生变化。然而,这实际上只是积极的一面(即现在运作良好可能会变得更好:)
    • 是的,在 1.0 之前,我们保留了更改公共 API 的能力,但在过去的一年中,我认为这种情况只发生过一次。
    【解决方案2】:

    像我一样改用 Google Guice :)

    对于最新的项目,我使用 JSF2 + Primefaces + Google Guice + EclipseLink

    此解决方案使代码更容易清理并准备好进行单元测试。 (使用 TestNG)

    【讨论】:

    • 我没有对Guice做过任何事情,它有事务控制吗?我以为它只是做了 DI。
    • Guice 有事务,只需将@Transaction 放在方法上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-04
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多