问题标签 [weld-se]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Deltaspike TransactionStrategy Alternative 模糊依赖
我在apache-deltaspike.properties中定义TransactionStrategy,使用 Global Alternatives 配置:
我的beans.xml只有deltaspike-data模块拦截器:
但是我被下面的异常击中了,这对我来说没有任何意义:
显然,默认情况下会激活BeanManagedUserTransactionStrategy替代方案。因为当我删除全局替代定义时,我可以看到deltaspike-data模块使用BeanManagedUserTransactionStrategy。
依赖版本:
- 焊接阴影:3.0.6.Final
- 增量峰值:1.9.3
关于如何绕过它的任何想法?我需要使用ResourceLocalTransactionStrategy。
java - 由于被添加到 WeldDeployment.additionalClasses 存档中,在 bean 存档中未检测到合成 bean
我已经使用 Weld 和 CDI 玩了几个月了,最近遇到了以下问题。
问题情况
- 使用 Weld SE 3.1.5.Final
- 创建了一个 CDI 扩展,它
SomeBean
使用添加了一个 bean ( )@Observes AfterBeanDiscovery abd
SomeBean
是具有ArrayList.class
as 类并返回 1 个限定符 (@CustomQualifier
) 的自定义 bean。- 一个不同的 bean (
DifferentBean
) 然后声明一个@Inject @CustomQualifier ArrayList<String> variableName;
- 此注入点因
Unsatisfied dependencies
.
调查
从 Bean Validation Report 我已经能够确定:
- Weld 创建 2 个 Bean 档案
- 和:
- 标识符:MyProject\build\classes\java\main
- 类型:全部
- Beans.xml:版本未定义。
- 和:
- 标识符:org.jboss.weld.environment.deployment.WeldDeployment.additionalClasses
- 类型:带注释的
- Beans.xml:没有 beans.xml
- 和:
- CDI 扩展是位于存档 1 中的 bean。
- 实例化的结果
DifferentBean
位于存档 1 中。- 这个豆子有:
- 种类:管理
- 班级:
my.package.DifferentBean
- 预选赛:
@Default
- 范围:
@Dependent
- 这个豆子有:
- 实例化的结果
SomeBean
位于存档 2 中。- 这个豆子有:
- 种类:合成
- 类:juArrayList
- 预选赛:
@CustomQualifier
- 范围:
@ApplicationScoped
- 这个豆子有:
原因
基于此,我假设由于某种原因,SomeBean
我的自定义扩展正在添加到存档 2,因此无法从存档 1 所在DifferentBean
的位置访问。
如果该评估是正确的,我该如何解决?
java - 在 Java SE 上运行单元测试时使用带有 Weld 的 CDI 不满足的依赖关系
我有一个小型(Java SE 11.x
)项目,我正在使用 Weld 测试 CDI。我有这些依赖项(除其他外,但这些是与此问题相关的):
然后我有一个简单的实体类:
...以及与数据库交互的 DAO 类:
我要做的是为 DAO 类编写一个简单的单元测试:
这个堆栈跟踪总是失败:
我已经搜索了很多类似的问题/答案,但仍然无法弄清楚我在这里做错了什么。有什么建议吗?
顺便说一句,我确实有一个main/resources/META-INF/beans.xml
and test/resources/META-INF/beans.xml
。两者的内容是一样的:
java - 为什么 Weld SE 偏爱某些 beans.xml 类路径放置?
测试类路径中的 Gradle Weld SE beans.xml 导致依赖项不满足
语境
运行创建单个 bean 的新实例的单元测试仅在 beans.xml 类路径放置的某些变体中导致不满足的依赖项异常。我已将场景简化为下面的片段。如果您需要更多信息,请告诉我,但这已经足够了。
描述
如果只有一个 beans.xml 文件,则需要将其复制到 src/main 类路径中。如果有两个,它们被复制的顺序很重要。我想知道的是:
- 当只有一个时,为什么 Weld 在 test-classpath 中找不到/搜索 beans.xml?
- 当有 2 个 beans.xml 文件时,为什么 Weld 需要首先将 beans.xml 文件复制到 test-classpath,如果只有一个,它会完全忽略 test-classpath 上的文件?
- 如果 Weld 找到两个 beans.xml 文件(一个在 main 上,一个在 test 上),它将以哪个 beans.xml 文件结束?
当然,我在这里假设这是由于 Weld SE。但是,这可能是由于 gradle 或此设置的其他部分。任何输入表示赞赏。
版本
摇篮:6.5.1
爪哇:11.0.8
窗户:10 家
依赖项
复制到 Gradle 类路径
从 src/main/resources
作品 不工作从 src/test/resources
作品 不工作从 src/main/resources 和 src/test/resources
作品 不工作java - 运行单元测试时禁用 Weld-SE 启动调试日志记录级别
我的项目中有一些测试,当我通过 IntelliJ 运行它们时,我从 WELD 中获得了许多行日志记录语句。我不知道如何禁用它们或将它们设置为 WARNING 或更高级别。
这是我每次在 intelliJ 中运行测试类时的当前输出(附图):
预期结果:
仅显示 WARN 或 ERROR 或更高级别的消息或完全禁用 Weld Container 和 Context 实例化的日志记录语句。
有没有办法将weld-se 日志配置为禁用或仅显示警告或错误日志语句?
weld - Weld SE:不在 Junit 测试中注入内部依赖
我在 junit 测试中使用 Weld SE。它似乎没有注入 CDI bean 的内部字段。我正在使用 Maven 神器weld-se-shaded (4.0.2-Final)
也不例外,该字段为空。我尝试了构造函数注入,而不是字段注入:
在这种情况下,我会收到一条异常消息:org.jboss.weld.exceptions.UnsatisfiedResolutionException: WELD-001334: Unsatisfied dependencies for type ZService with qualifiers