问题标签 [jboss-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.
tomcat - Servlet 3.0 容器中的过滤器和 Servlet 外部的 CDI 注入
我最终决定看看 Tomcat 中的 Weld。当我部署我的应用程序时,我在日志中看到:
“检测到 Tomcat 7,CDI 注入将在 Servlet 和过滤器中可用”
例如,如何使用过滤器/Servlet 之外的 BeanManager 创建 bean 的实例?
我有一个豆子:
我想使用 BeanManager 为指定的请求上下文创建它的一个实例。
如果这可以在 servlet/过滤器中完成,我相信它可以在其他任何地方完成,但我只是不想通过 Weld 代码并在不先询问的情况下自己弄清楚。
非常感谢。
java - 尝试持久化 JPA 实体时出错
当我尝试从类中持久化实体时出现错误。我创建了 UserController 类,当我尝试执行 Register 方法时,em.pertist(usr) 行出现错误,当我直接在 UserRegBean 中运行此代码时,它可以工作......有人可以帮助我...
这是代码:
用户控制器.java
用户RegBean.java
错误:
jakarta-ee - 没有堆栈跟踪的“加载应用程序时出现异常”
我正在将我的应用程序从 GlassFish 3.0.1 迁移到 GlassFish 3.1.1。部署失败,并显示以下错误消息:
没有堆栈跟踪。我将根日志记录级别设置为 FINEST,第一个 SEVERE 消息出现在 Weld 消息之后:
在这样的几条消息之前(对于几个不同的类):
什么可能导致此错误?这些 PWC4451 消息是否表明某些库没有被加载?
java - WELD-001318 无法解决模棱两可的依赖关系
如下部署我的应用程序时出现错误..
而且我只有这样的方法,其标题看起来像这样
和类有这些
请帮忙。这个错误可能比我的代码更模糊。
java - 在 Weld/Seam3 应用程序上启动 POJO
我试图在我的 Weld/Seam3 应用程序中启动一个 POJO,但运气不佳。我尝试了以下方法,但都没有奏效:
-
但这些方法都不起作用。我的日志消息从未被提出。由于此应用程序在 Tomcat6 上运行,并且我必须将“org.jboss.weld.environment.servlet.Listener”侦听器添加到我的 web.xml,我想知道该类是否有一些我可以观察到的东西。不过我并没有特别注意到什么。
知道我还能尝试什么吗?
jboss-weld - Weld (CDI):我在哪里放置配置的仅测试 beans.xml?
我的 webappbeans.xml
在src/main/resources/META-INF
. 现在,对于我的测试,我需要用替代品换掉 1 个 bean。
我把这个beans.xml
只包含这个的测试放在哪里,仅此而已?
我试过了,src/test/resources/META-INF
但被忽略了。我正在使用 arquillian,并且我的测试类路径已添加到 ShrinkWrap。
jsf - 引用 CDI 生产者方法导致 h:selectOneMenu
我有一个命名的会话范围 bean ,它有一个返回对象CustomerRegistration
的命名生产者方法。还有一个类可以从数据库中生成所有客户作为列表。在 selectCustomer.xhtml 页面上,用户可以选择其中一个客户并将选择提交给应用程序,然后应用程序简单地打印出所选客户的姓氏。getNewCustomer
Customer
CustomerListProducer
现在,这仅在我通过#{customerRegistration.newCustomer}
. 当我简单地使用时#{newCustomer}
,姓氏的输出是null
每当我提交表单时。
这里发生了什么?这是根据第 7.1 章限制JSR-299 规范的 bean 实例的预期行为吗?
它说:
...但是,如果应用程序直接实例化一个 bean 类,而不是让容器执行实例化,则生成的实例不由容器管理,也不是第 6.5.2 节定义的上下文实例,“a豆”。此外,第 2.1 节“容器为 bean 提供的功能”中列出的功能将不适用于该特定实例。在已部署的应用程序中,容器负责实例化 bean 并初始化它们的依赖项。...
这是代码:
客户.java:
CustomerListProducer.java:
客户注册.java:
不工作 selectCustomer.xhtml:
工作 selectCustomer.xhtml:
客户转换器.java:
code-injection - Weld CDI:如何使一个 bean 类满足多个限定符中的任何一个?
通过阅读 Weld 文档,我认为这无法做到,但我真的可以做到,所以我想我会问 - 如果 CDI 没有办法,也许有一种模式解决方法......
我用一个成员创建了一个自定义限定符:
JobType 是一个枚举:
假设大多数工作需要以稍微不同的方式构建,所以我有与工作相关的构建器类。给定相关的 JobType,这些都使用 JobBinding 注释进行注释:
当我需要构建时,我使用编程查找:
JobBindingQualifier 是一个自定义类:
到目前为止,很棒 - CDI 工作出色。但是,如果其中两个作业 JOB_X 和 JOB_Y 以完全相同的方式构建会怎样?我只需要一个构建器类,我想为这些选项中的任何一个实例化它 -new JobBindingQualifier(JobType.JOB_X)
或new JobBindingQualifier(JobType.JOB_Y)
.
如果我JobXAndYBuilder
同时使用@JobBinding(JOB_X)
and进行注释,则会@JobBinding(JOB_Y)
收到有关重复注释的编译器错误。为了解决这个问题,我可以将注释的值更改为 JobTypes 数组,您可以像这样注释构建器
使用省略号调用那里的构造函数来生成数组。但是,如果我这样做了,我怎么能使用任何一个 jobTypes 以编程方式查找呢?Weld 文档建议您必须同时拥有两者;我需要提供确切的论点:
当我想要足以查找课程时:
使用数组实际上只是更改了查找时必须匹配的值。我真的需要一种用相同的限定符注释对一个类进行两次注释的方法,然后能够使用它们的任意组合来查找它。否则,我必须为 X 和 Y 分别提供一个构建器类,只要一个就足够了。有任何想法吗?提前致谢!
java - 焊接和 Java SE
我是 Weld 的新手,一直在努力理解它的概念。我对 Spring 有一点经验,而对 Guice 一无所知,所以我几乎是 DI 框架的新手。
这是一个介绍 CDI 的教程,但在 Web 应用程序的上下文中。我很想看看这在 Java SE 中是如何工作的。我创建了以下类,但不知道如何在 Java SE 应用程序中使用 DefaultItemDao 类(或任何其他替代方法)测试 ItemProcessor 的执行方法。
这是课程:
而且我不知道如何为 ItemProcessor 类编写测试客户端。有人可以帮我理解如何用 CDI 编写一个吗?
谢谢,库马尔