问题标签 [weld]
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.
rest - Weld 中的错误(CDI 实现)?
操作系统:Windows 7 JVM:JavaSE 1.7 Java EE:JBoss AS 7.1.1
设想:
当我远程执行(使用休息客户端)Teservice:执行多次时,会打印相同的日期。
java - 从weld conversationScoped中的url中删除对话ID
我可以在我的项目中隐藏来自 url 的对话 ID(cid)吗?我使用焊接,我的 ManagedBean 是 ConversationScoped。如何可以从我的 url 末尾隐藏 queryString。
java - CDI 生产者和注入
我想在我的应用程序中使用生产者,但我被困在我试图注入 bean 的地方。我得到了著名的 WELD-001409 错误。请减轻我对cdi生产者的理解。
这是我的界面:
豆子:
和制片人:
现在我正在注入 bean:
当我尝试部署项目时,我得到了 WELD-001409 错误,并且 Eclipse 还说有多个注入点。
它适用于显式命名:
这个命名有必要吗?
jakarta-ee - 如何使用weld-se对CDI进行单元测试?
我想使用weld-se 对CDI 进行单元测试。但是,我遇到了 Weld 无法解决 bean 的问题。我创建了一个小项目来演示 gradle 的构建问题。
我在文件夹中有以下文件<project-root>
:
下面列出了每个文件的内容。
构建.gradle
图书.java
BookTest.java
beans.xml(beans.xml
main/和test/下的两个是一样的。)
当我使用 构建项目时gradle clean build
,我收到一个错误,如下所示。我用谷歌搜索,但无法使其工作。
非常感谢您的帮助。
jsf - 全局设置 CDI 会话超时
是否可以为注入 @Named bean 的所有对话对象全局设置对话超时?
我有几个 @ConversationScoped bean,例如:
这些对话的默认超时为 600000 毫秒。我想知道是否有任何方法可以全局设置对话超时,或者我需要在每个 bean 中设置它
(问题是有很多 CDI bean 并且在每个中手动设置超时不是最好的解决方案)
events - Weld 中的 JavaEE CDI:通用事件?
我对基于泛型的特定事件处理有一个想法,但似乎 Weld 无法处理它们。我问了谷歌,但找不到替代的 CDI 扩展。
问题:是否有 CDI 扩展,可以处理泛型事件的事件传播?
以下是我遇到的明确问题。
我有三个常规事件,EntityCreated、EntityChanged 和 EntityDeleted。它们的基类定义如下:
然后事件是简单的继承类:
我这样解雇他们:
我想像这样观察它们:
启动服务器时 Weld 告诉我它无法处理泛型类型的事件。CDI 做事的方式是使用额外的限定符而不是泛型来区分它们,例如:
但是,我从那个MyHome
基类触发事件,我不能只用@ProjectEvent
: 它可能不是一个项目,而是另一种类型。
到目前为止,我的解决方案是完全跳过该输入并像这样处理它们:
这个解决方案还可以,但并不完美。
java - 使用 beans.xml 文件的 CDI bean 配置
我有非常简单的 CDI bean:
现在我想text
使用beans.xml
. 我正在尝试使用beans.xml
这样的文件:
但它不起作用。text
始终为空。你能帮我弄清楚这里有什么问题吗?
换句话说:我正在寻找一个类似的解决方案,因为它在此处描述的 JSF faces-config.xml 中使用:http ://www.mkyong.com/jsf2/configure-managed-beans-in-jsf- 2-0/
jakarta-ee - 焊接与 StartMain 不工作
我试图在一个非常简单的示例中使weld-se 工作,该示例基本上遵循这个。但是,我无法让它工作。
我使用 gradle 进行构建。这是我的 build.gradle:
我在 src 文件夹中有这些文件。
内容如下。
HelloWorld.java
豆类.xml
当我运行时gradle hello
,我没有得到输出Hello, World
,而是BUILD SUCCESSFUL
带有以下消息:
但是,当我直接使用 运行它时java
,会出现异常。这是完整的堆栈跟踪。
在我看来,InstanceManager
这是导致异常的模棱两可。但是,我不确定。无论如何,您知道如何进行这项工作吗?非常感谢。
jakarta-ee - 什么 Weld CDI 可以 @Inject 而不在 JSF 2.1+ 应用程序中声明 @Produces?
什么 Weld CDI 可以 @Inject 而不在 JSF 2.1+ 应用程序中声明 @Produces?
据我了解,它可以在正确设置的 Web 应用程序中注入 FacesContext。
能不能注入:
- Http会话?
- 来自 web.xml 的上下文参数(ala ServletContext.getInitParameter(xxx))
- 来自 web.xml 的 env-ref
jakarta-ee - 拦截器真的默认禁用了吗?
我今天遇到了这种困惑。引用 Weld 的文档(在第 9.3 节下),
默认情况下,所有拦截器都被禁用。我们需要启用我们的拦截器。我们可以使用 bean 存档的 beans.xml 描述符来做到这一点。但是,此激活仅适用于该存档中的 bean。
但是,在我目前正在进行的项目中,我有一个用于分析方法的拦截器。我META-INF/beans.xml
的基本上是空的:
然而,我仍然从该分析拦截器中获得预期的日志。那么,正如标题所说,拦截器真的默认禁用了吗?
顺便说一句,我weld-se
在项目中使用 CDI 功能,因为 CDI 是 Java EE 堆栈中项目唯一需要的东西。
更新
今天折腾了拦截器,发现如果用 old@Interceptors
来表示拦截实现类,就不需要在beans.xml
. 但是,如果使用拦截器绑定,即使用@Interceptor
注解指示拦截器类,则必须通过将拦截器类添加到beans.xml
. 根据我的经验,CDI 1.1 仍然如此,如beans.xml
上面的版本所示。顺便说一句,我org.jboss.weld.se:weld-se:2.0.4.Final
在这种情况下用于 CDI 实现,我相信它实现了 CDI 1.1。