gpt4 book ai didi

wildfly - Wildfly 11 部署中源自 deltaspike 的拦截器警告

转载 作者:行者123 更新时间:2023-12-02 17:11:53 33 4
gpt4 key购买 nike

在 Wildfly 11 中部署 test.war 期间,我看到了一些警告:

09:45:32,714 WARN  [org.jboss.weld.Validator] (MSC service thread 1-4) WELD-001478: Interceptor class org.apache.deltaspike.core.impl.throttling.ThrottledInterceptor is enabled for the application and for the bean archive test.war/WEB-INF/lib/deltaspike-core-impl-1.8.1.jar. It will only be invoked in the @Priority part of the chain.
09:45:32,714 WARN [org.jboss.weld.Validator] (MSC service thread 1-4) WELD-001478: Interceptor class org.apache.deltaspike.core.impl.lock.LockedInterceptor is enabled for the application and for the bean archive test.war/WEB-INF/lib/deltaspike-core-impl-1.8.1.jar. It will only be invoked in the @Priority part of the chain.
09:45:32,715 WARN [org.jboss.weld.Validator] (MSC service thread 1-4) WELD-001478: Interceptor class org.apache.deltaspike.core.impl.future.FutureableInterceptor is enabled for the application and for the bean archive test.war/WEB-INF/lib/deltaspike-core-impl-1.8.1.jar. It will only be invoked in the @Priority part of the chain.
09:45:32,722 WARN [org.jboss.weld.Validator] (MSC service thread 1-4) WELD-001478: Interceptor class org.apache.deltaspike.jpa.impl.transaction.TransactionalInterceptor is enabled for the application and for the bean archive test.war/WEB-INF/lib/deltaspike-jpa-module-impl-1.8.1.jar. It will only be invoked in the @Priority part of the chain.
09:45:32,728 WARN [org.jboss.weld.Validator] (MSC service thread 1-4) WELD-001478: Interceptor class org.apache.deltaspike.proxy.util.EnableInterceptorsInterceptor is enabled for the application and for the bean archive test.war/WEB-INF/lib/deltaspike-proxy-module-api-1.8.1.jar. It will only be invoked in the @Priority part of the

这似乎是因为在我的 test.war 现有 deltaspike jar 中的每个 beans.xml 中都存在一些拦截器,例如 deltaspike-core -impl-1.8.1.jar:

<class>org.apache.deltaspike.core.impl.throttling.ThrottledInterceptor</class>
<class>org.apache.deltaspike.core.impl.lock.LockedInterceptor</class>
<class>org.apache.deltaspike.core.impl.future.FutureableInterceptor</class>

是否可以从 beans.xml 中删除拦截器而不会造成任何损害?

在 Wildfly 11 中使用 CDI 1.2,我认为不再需要在 beans.xml 中显式列出拦截器。

至少似乎存在一些应该由 deltaspike 开发人员研究的(小)问题?

最佳答案

这是 DeltaSpike 令人讨厌的黑魔法 - 他们试图保持 CDI 1.0 兼容,这意味着他们不能使用 @Priority (稍后引入,CDI 1.1)作为启用拦截器的手段/全局装饰器/替代品。为了使其正常工作,他们必须将 beans.xml 包含到其 JAR 和 enable it there 中。基于每个存档。

但这还不是全部,他们随后通过使用 an extension which promotes all their interceptors to globally enabled 来解决 @Priority 限制。 (例如就好像他们有@Priority)。

现在,我完全不确定您是否可以删除它 - 您可以轻松地尝试看看它们是否仍然有效。但我不会碰它,因为 DS 在这方面似乎很脆弱。

至于 Weld 警告 - 它非常无害,Weld 只是告诉您在处理所有拦截器时:

  • beans.xml 中找到的内容(每个 bean 存档启用)
  • 通过扫描类路径识别的那些;寻找@Interceptor + @Priority(全局启用)
  • 以及最终通过扩展程序启用的内容(全局启用)

我们发现某些拦截器是双向启用的,尽管如此,它们只会被调用一次。

总而言之,您不需要做任何事情,它应该仍然对您有用。

关于wildfly - Wildfly 11 部署中源自 deltaspike 的拦截器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51553615/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com