问题标签 [weld2]

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 投票
0 回答
50 浏览

java - 在应用程序上下文中关联会话 bean

我有会话 ID 映射,我想获取与会话 ID 关联的每个会话。BoundSessionContext 被告知要使用,但我不知道如何为其设置地图值。是否有任何代码示例或其他方式来实现获取 sessionContext.

我正在使用wildFly-8.1.Final。

0 投票
1 回答
3709 浏览

tomcat7 - 在 Tomcat 7 上部署的 Omnifaces 异常

我正在尝试将 Omnifaces 2.1 添加到 Web 应用程序以使用 FullAjaxExceptionHandler 以及可能在 Omnifaces 2.1 中的其他功能。

我已经阅读并关注了 BallusC 的以下帖子,但仍然卡住: 如何在 Tomcat 上安装和使用 CDI?

尝试安装 Weld 2.2.9.Final 并如上所述进行配置。我正在使用以下内容:

JSF 2.2、EL 2.2、Servlet 3、Java 7

网页.xml:

启动时,我仍然收到以下异常:

Catalina.log:

本地主机.log:

jar 确实存在并已添加到应用程序中。

还有什么可能导致此错误?

0 投票
1 回答
434 浏览

cdi - 生产者在 Arquillian 过程中被 Weld 发现

在使用 Glassfish 嵌入式插件使用 Arquillian 运行单元测试时,我收到以下 CDI 错误:

带有限定符 @SupportedLocales 的 Set(Locale) 定义在已测试 WebArchive 中部署的模块中。存档内容是:

该对象由位于“common-cdi”模块中的生产者方法提供。同一个模块提供 CDI 扩展功能,如 ThreadScoped。Weld 在测试启动期间未发现此生产者,并且 Weld 未从“commons-cdi”模块中发现 bean。这怎么可能?我们可以在同一个模块中提供 CDI 扩展功能和 CDI bean 吗?

@SupportedLocales 在“commons-cdi”中声明:

生产者在“commons-cdi”中声明:

JUnit 测试用例定义:

MyCurrentLocale 类定义:

声明有问题吗?

0 投票
0 回答
170 浏览

jsf - 来自超类的 JSF+WELD CDI+EL MethodNotFound

环境:

野蝇 9.0.1

JSF:jsf-impl-2.2.11-jbossorg-1

焊接:wildfly-weld-9.0.1

我有这种情况:

客户控制器.java

Type1CustomerController.java

Type2CustomerController.java

客户选择控制器.java

Now when the Type2CustomerControlleris selected, everything works fine. 当Type1CustomerController, 灾难来袭时:

EL 找不到在 Type1Controller 中覆盖的超类方法可能是什么问题?

0 投票
1 回答
384 浏览

cdi - Weld CDI 自定义范围中的种子值

来自 Guice 背景,我知道可以使用范围从范围中播种对象值。

我想可以通过注册一个从 中获取值的 Bean 来做到这一点AbstractBoundContext,但是仅从自定义范围中播种一个值的示例似乎很难找到。如何创建一个自定义范围来播种可以在其他地方注入的值?

编辑: 我目前正在使用以下解决方法,可以Configuration在进入范围时注入拦截器以设置,然后可以通过其线程本地提供程序注入。不过,我仍在寻找那些感觉不那么老套/与 Weld 中的范围/范围上下文系统更集成的选项。

0 投票
4 回答
4137 浏览

java - 如何覆盖 Jersey 2.23 中的内置异常映射器?

在我的一个项目中,我已经将 Jersey 从 version 升级2.142.23. 但我在一个问题上苦苦挣扎了好几个小时。我的项目为 a 定义了自己ExceptionMapperValidationException,但不幸的是,Jersey 已经为此异常提供了一个内置的异常映射器,我无法覆盖它。

我已经正确注册(我检查了)我自己的映射器,如下所示:

但它永远不会被调用。泽西总是捡来的org.glassfish.jersey.server.validation.internal.ValidationExceptionMapper。我也尝试 @Priority为我的自定义映射器使用注释,但不幸的是 Jersey 没有考虑到它。

那么发生了什么?它在以前的 Jersey 版本中工作得非常好,所以它似乎是一个回归错误。

我放弃。有什么线索吗?

0 投票
1 回答
884 浏览

cdi - Deltaspike 数据 (CDI + JPA) 自定义 PrePersistAuditListener 和 PreUpdateAuditListener 用于 UTC 的自定义 java.time.ChronoLocalDateTime

Wildfly 9.0.2.Final 上的 Deltaspike Ver 1.7.2

我在实体 bean 上使用 JPA 和 Deltaspike 数据(和注释)@EntityListeners(AuditEntityListener.class)的审计功能,@CreatedOn不同之处在于我有一个自定义实现,它将任何+ OR a转换为 UTC 日期和时间。@ModifiedOn@ModifiedByjava.time.ChronoLocalDateTimeLocalDateTimeZoneOffsetZonedDateTime

UTC日期时间

实体 bean 部分

UTCDateTime 类还有一个自定义的 AttributeConverter,因为 epoch 值保存在数据库中。

现在,当我坚持实体时,我得到以下异常(真正原因的最后一点):

有没有办法实现我自己的org.apache.deltaspike.data.impl.audit.PrePersistAuditListenerorg.apache.deltaspike.data.impl.audit.PreUpdateAuditListener使用它们来创建实例UTCDateTime

编写我自己的 EntityListener -->UTCDateTimeAuditListener并在遵循方法的@EntityListeners(UTCDateTimeAuditEntityListener.class)地方使用它是否正确?UTCDateTimeAuditListenerorg.apache.deltaspike.data.impl.audit.AuditEntityListener

其次,我是否需要在某处使用 CDI 限定符以确保我UTCDateTimeAuditEntityListener获得对知道如何构造实例的正确PrePersistAuditListener和实现的引用?PreUpdateAuditListenerUTCDateTime

最后,我不知道它是否相关,但在哪里org.apache.deltaspike.data.impl.audit.TimestampsProvider适合这种情况?

更新

我在回答我的问题方面取得了一些进展。到目前为止我所做的。不需要定制AuditEntityListener,DeltaSpike 提供的定制就足够了。

我创建了一个TimestampsProvider能够处理我的UTCDateTime对象的新实现。

beans.xml 还将其列为 CDI @Alternative

内容apache-deltaspike.properties

现在的问题是两个AuditProvider实例都被执行了,首先是我的实现(UTCDateTimeAuditProvider)然后是默认的TimestampsProvider

我尝试了各种组合,仅使用注释指定我的@Alternative 实现,或者仅在 beans.xml 中以及在类和 beans.xml 中。

有谁知道为什么TimestampsProvider在我的@Alternative 实现之后执行默认值?

Wildfly 9.0.2.Final 和 Weld 2.2.16 (SP1) 上的 Deltaspike Ver 1.7.2

0 投票
1 回答
590 浏览

cdi - 在运行时禁用/启用拦截器

我有一些拦截器用于调试(性能、方法使用记录等)我们的 JavaEE 应用程序。

在生产系统中,我不希望默认启用这些拦截器,但我希望有可能在运行时启用它们(=无需重新部署)。是否有任何可移植的方式来独立于 CDI 实现?如果没有,是否有任何 WELD 特定的方法来做到这一点?

我唯一的解决方案是那些拦截器必须使用的全局标志,但仍然有进入拦截器和评估标志的开销。

0 投票
1 回答
44 浏览

cdi - CDI wrt @Inject 与 BeanManager.getBeans(Function.class) 中的函数是否特殊?

我有两个类,我想注入:

当我尝试在其他地方使用它们时,我会得到不同的行为:

我的输出是:

这比我预期的少一行。

有人可以解释这里发生了什么吗?

解决方案,感谢 Siliarus 让我走上正确的道路:

0 投票
1 回答
67 浏览

java - 是否可以获得包含类(CDI)的引用?

我的设置如下 -

StatusModel类如下 -

pminside是依赖的实例StatusModel的引用。ParentModelStatusModel

里面dao- 我注射ParentModel如下

但是,设置ParentModel参考StatusModel使用单独的方法调用如下 -

我们可以在没有方法调用的情况下获取pm内部引用吗?sm