Java Ejb全局事务管理

Java Ejb全局事务管理,java,jakarta-ee,transactions,ejb,payara,Java,Jakarta Ee,Transactions,Ejb,Payara,有没有一种方法可以在EJB的一个“位置”配置事务?我知道我可以使用@TransactionManagement,但它需要将此注释添加到每个bean中,默认事务属性是必需的。我想要实现的是在整个项目中禁用事务。我曾尝试使用@Stereotype创建自定义注释,但它不能与@Singleton一起使用。然后发生此错误: [2019-07-20T08:17:31.918+0200] [Payara 5.191] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.s

有没有一种方法可以在EJB的一个“位置”配置事务?我知道我可以使用
@TransactionManagement
,但它需要将此注释添加到每个bean中,默认事务属性是
必需的
。我想要实现的是在整个项目中禁用事务。我曾尝试使用
@Stereotype
创建自定义注释,但它不能与
@Singleton
一起使用。然后发生此错误:

[2019-07-20T08:17:31.918+0200] [Payara 5.191] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=172 _ThreadName=admin-thread-pool::admin-listener(5)] [timeMillis: 1563603451918] [levelValue: 1000] [[
  Exception during lifecycle processing
org.glassfish.deployment.common.DeploymentException: CDI definition failure:WELD-001508: Cannot create an InjectionTarget from [EnhancedAnnotatedTypeImpl] public abstract interface @Stereotype @Singleton @Target @TransactionAttribute @Retention class pl.orangelabs.hod.app.config.NoTransactionComponent as it is an int
erface -- WELD-001508: Cannot create an InjectionTarget from [EnhancedAnnotatedTypeImpl] public abstract interface @Stereotype @Singleton @Target @TransactionAttribute @Retention class pl.orangelabs.hod.app.config.NoTransactionComponent as it is an interface
        at org.jboss.weld.util.InjectionTargets.createNonProducibleInjectionTarget(InjectionTargets.java:82)
        at org.jboss.weld.util.InjectionTargets.createNonProducibleInjectionTarget(InjectionTargets.java:48)
        at org.jboss.weld.manager.InjectionTargetFactoryImpl.chooseInjectionTarget(InjectionTargetFactoryImpl.java:126)
        at org.jboss.weld.manager.InjectionTargetFactoryImpl.createInjectionTarget(InjectionTargetFactoryImpl.java:88)


我正在使用
Payara server
部署应用程序。

设置了EJB的默认事务性,但您可能可以通过使用CDIBeans来避免使用本地EJB。定义它们ApplicationScoped、RequestScoped或SessionScoped(如果它们是单例或无状态的),并在需要它们的地方使用@Inject