问题标签 [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.

0 投票
1 回答
121 浏览

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

0 投票
1 回答
59 浏览

java - 由于被添加到 WeldDeployment.additionalClasses 存档中,在 bean 存档中未检测到合成 bean

我已经使用 Weld 和 CDI 玩了几个月了,最近遇到了以下问题。

问题情况

  • 使用 Weld SE 3.1.5.Final
  • 创建了一个 CDI 扩展,它SomeBean使用添加了一个 bean ( )@Observes AfterBeanDiscovery abd
  • SomeBean是具有ArrayList.classas 类并返回 1 个限定符 ( @CustomQualifier) 的自定义 bean。
  • 一个不同的 bean ( DifferentBean) 然后声明一个@Inject @CustomQualifier ArrayList<String> variableName;
  • 此注入点因Unsatisfied dependencies.

调查

从 Bean Validation Report 我已经能够确定:

  • Weld 创建 2 个 Bean 档案
    1. 和:
      • 标识符:MyProject\build\classes\java\main
      • 类型:全部
      • Beans.xml:版本未定义。
    2. 和:
      • 标识符: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的位置访问。

如果该评估是正确的,我该如何解决?

0 投票
3 回答
565 浏览

java - 在 Java SE 上运行单元测试时使用带有 Weld 的 CDI 不满足的依赖关系

我有一个小型(Java SE 11.x)项目,我正在使用 Weld 测试 CDI。我有这些依赖项(除其他外,但这些是与此问题相关的):

然后我有一个简单的实体类:

...以及与数据库交互的 DAO 类:

我要做的是为 DAO 类编写一个简单的单元测试:

这个堆栈跟踪总是失败:

我已经搜索了很多类似的问题/答案,但仍然无法弄清楚我在这里做错了什么。有什么建议吗?

顺便说一句,我确实有一个main/resources/META-INF/beans.xmland test/resources/META-INF/beans.xml。两者的内容是一样的:

0 投票
0 回答
65 浏览

java - 为什么 Weld SE 偏爱某些 beans.xml 类路径放置?

测试类路径中的 Gradle Weld SE beans.xml 导致依赖项不满足

语境

运行创建单个 bean 的新实例的单元测试仅在 beans.xml 类路径放置的某些变体中导致不满足的依赖项异常。我已将场景简化为下面的片段。如果您需要更多信息,请告诉我,但这已经足够了。

描述

如果只有一个 beans.xml 文件,则需要将其复制到 src/main 类路径中。如果有两个,它们被复制的顺序很重要。我想知道的是:

  1. 当只有一个时,为什么 Weld 在 test-classpath 中找不到/搜索 beans.xml?
  2. 当有 2 个 beans.xml 文件时,为什么 Weld 需要首先将 beans.xml 文件复制到 test-classpath,如果只有一个,它会完全忽略 test-classpath 上的文件?
  3. 如果 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

作品 不工作
0 投票
0 回答
79 浏览

java - 运行单元测试时禁用 Weld-SE 启动调试日志记录级别

我的项目中有一些测试,当我通过 IntelliJ 运行它们时,我从 WELD 中获得了许多行日志记录语句。我不知道如何禁用它们或将它们设置为 WARNING 或更高级别。

这是我每次在 intelliJ 中运行测试类时的当前输出(附图):

IntelliJ 截图

预期结果:

仅显示 WARN 或 ERROR 或更高级别的消息或完全禁用 Weld Container 和 Context 实例化的日志记录语句。

有没有办法将weld-se 日志配置为禁用或仅显示警告或错误日志语句?

0 投票
1 回答
56 浏览

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