- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Global Alternatives 配置在 apache-deltaspike.properties 中定义 TransactionStrategy:
globalAlternatives.org.apache.deltaspike.jpa.spi.transaction.TransactionStrategy=org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy
我的 beans.xml 仅具有 deltaspike-data 模块拦截器:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
version="1.1" bean-discovery-mode="all">
<interceptors>
<class>org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor</class>
</interceptors>
</beans>
但是我遇到了下面的异常,这对我来说没有任何意义:
WELD-001409: Ambiguous dependencies for type TransactionStrategy with qualifiers @Default
at injection point [UnbackedAnnotatedField] @Inject private org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor.transactionStrategy
at org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor.transactionStrategy(TransactionalInterceptor.java:0)
Possible dependencies:
- Managed Bean [class org.apache.deltaspike.jpa.impl.transaction.BeanManagedUserTransactionStrategy] with qualifiers [@Any @Default],
- Managed Bean [class org.apache.deltaspike.jpa.impl.transaction.ResourceLocalTransactionStrategy] with qualifiers [@Any @Default]
显然默认情况下会激活BeanManagedUserTransactionStrategy替代方案。因为当我删除全局替代定义时,我可以看到 deltaspike-data 模块使用 BeanManagedUserTransactionStrategy。
有什么办法可以解决这个问题吗?我需要使用ResourceLocalTransactionStrategy。
最佳答案
我正在使用一种解决方法:从 beans 扫描中排除 BeanManagedUserTransactionStrategy。
我在 beans.xml 中使用 WELD 特定 XML 模式执行此操作:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:weld="http://jboss.org/schema/weld/beans">
<weld:scan>
<weld:exclude name="org.apache.deltaspike.jpa.impl.transaction.BeanManagedUserTransactionStrategy"/>
</weld:scan>
<interceptors>
<class>org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor</class>
</interceptors>
</beans>
通过这样做,我放弃了可移植性,这意味着这只适用于WELD。
关于java - Deltaspike TransactionStrategy 替代方案 不明确的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61427124/
我正在使用 Global Alternatives 配置在 apache-deltaspike.properties 中定义 TransactionStrategy: globalAlternativ
在我的 Wildfly swarm 应用程序中,我想将 deltaspike 与数据模块、JPA 和 JTA 一起使用。 我已将 beans.xml 定义为使用 EnvironmentAwareTra
我是一名优秀的程序员,十分优秀!