问题标签 [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 投票
1 回答
344 浏览

hibernate - 延迟 TransactionalObserverNotifier 失败并出现 ARJUNA016082:不允许同步

当我通过 Hibernate 生命周期侦听器触发 CDI 事件并将通知推迟到使用@Observe(during = ...). 这种逻辑在某些情况下可以正常工作,但该规则似乎有一些例外。这似乎是从@Transactional方法调用持久性事件时:我的提交成功但从未通知观察者。

调试问题后,我发现对于成功的事务(即没有抛出错误,更改保留在数据库中),我仍然输入了AFTER_FAILURE观察者而不是AFTER_SUCCESS观察者。因此,不知何故,我正在寻找一项新的交易,但它会默默地失败。我只是通过冒泡堆栈并找到异常来找到下面的堆栈跟踪。

根据堆栈跟踪,我们看到发生了一些事情:

  • 一直到下面我们离开我们的方法,TransactionalInterceptor 提交活动事务
  • 这会导致实体刷新
  • 这触发了我的一个生命周期监听器
  • CDI 事件在一个生命周期侦听器中触发
  • CDI 发现事务是IN_PROGRESS,我的事件需要AFTER_SUCCESS,所以通知被推迟。
  • Weld 无法在 中添加同步registerSynchronizationWeldTransactionServices并且失败并显示下面的堆栈跟踪。

我在具有容器管理事务的 JTA 环境中运行。Weld 似乎并不总是能够调用 registerSynchronization 并且在某些情况下其他同步已经添加到事务中。可能是我的设置有问题,但在我看来,事务观察者的这种使用正是它的目的。所以我认为这是 Arjuna 或 Weld 中的一个错误,但我不确定从哪里开始寻找。非常感谢任何建议!

0 投票
0 回答
463 浏览

wildfly-10 - 焊接 2.3.5 奇怪的行为

org.jboss.weld.construction.relaxed=true将属性添加到weld.properties 文件到部署时war 存档的WEB-INF 目录时,将引发此异常:

这没有说任何有意义的东西我想知道这是否是带有错误异常消息或错误的预期行为,因为应用程序在没有weld.properties文件的情况下工作。

提前致谢。

0 投票
0 回答
126 浏览

java - 使用 Weld CDI 的 Webapp 中的循环死锁

我的网络应用程序的某个地方有问题,但我找不到解决方案。我遇到了一个循环僵局,它们总是发生在 2 个豆子上。他们使用的资源虽然不在这两个 bean 之间共享。如果不是用 Weld 注入的一个 bean,我就找不到连接。

在堆栈跟踪中,我可以看到锁是由 Weld 处理的,但我不知道它试图(再次)锁定的锁定资源。

应用程序的主包是com.cmp.webapp

com.cmp.webapp.PointOfSalesBean,这是两个故障点之一,被注释掉了@javax.enterprise.context.ConversationBean

com.cmp.webapp.GeoManager@javax.enterprise.context.SessionScoped

com.cmp.webapp.service.KernelService注入两个 bean 的范围也设置为 Session 。

锁定的线程之一报告了这一点:

另一个(Thread-2)如下:

GeoManager.getNationByCod:

PointOfSaleBean.isActive:

内核服务:

0 投票
1 回答
311 浏览

tomcat - Tomcat - 异步请求的 WELD 解决方法

我有一个在 Tomcat 9 上运行的 WELD 3.0.5 和 RestEasy 3.6.1 实现的 REST 应用程序。

对于异步请求,Tomcat 在与触发初始化事件的线程不同的线程中触发请求销毁事件。在这种情况下,使用ThreadLocals的 WELD 不会停用请求上下文,因此不会调用 bean 处理方法。

请参阅:WELD-000225、WELD-000335 和 WELD-000715 警告是什么意思?

Tomcat 错误 57314

我的应用程序依赖于容器生命周期事件来关闭资源并进行清理,因此我需要一种方法来使所有内容也适用于异步请求。我想出的解决方案是WebFilter在执行链的末尾添加一个使当前请求上下文无效的方法。

这在丢弃 bean 和删除一些线程局部变量方面做得很好。不幸的是,一些变量仍然与池线程相关联,Tomcat 抱怨它:

我的理解是每个请求都会覆盖 ThreadLocals,因此这并不完全是内存泄漏,但我仍然对这个解决方案不是 100% 满意。

有谁知道解决此问题的更好方法?

0 投票
1 回答
62 浏览

cdi - 如何使用 org.jboss.weld.proxy.dump?

我将 CDI 1.2 与 JBoss Weld 2.4.6 一起使用,其中可以在 weld.properties 中配置密钥 org.jboss.weld.proxy.dump 为:“出于调试目的,可以转储客户端代理的生成字节码和文件系统的增强子类。” 这些类可以通过将它们加载到容器而不是让容器再次工作来以某种方式用于加速部署吗?

0 投票
1 回答
93 浏览

java - 如何处理继承类型的多种处理方法?

我有两节课。

在我的制片人课上,我是这样声明的。

韦尔德抱怨道。

这是正常的吗?我该如何解决?

0 投票
2 回答
1078 浏览

java - WeldContainer 和 SeContainer

使用有什么区别:

WeldContainer se = new Weld().initialize();

或者

SeContainer se = SeContainerInitializer.newInstance().initialize();

我只是想使用@Injection@Produce注解,但是我没有发现这两种初始化对象实例的方式的区别。