问题标签 [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.
jboss - cdi bean中的Jboss as7 ejb注入
我开发了一个使用 ejb3.1、jsf2.0 和 cdi 启用的 ear 应用程序。
我已将我的应用程序打包为 ear,其中包含定义会话 bean 的 ejb 模块、定义远程会话接口和 jpa 实体的 ejbremote jar,以及包含对 ejbremote jar 的依赖关系的 war 应用程序(用于远程接口查找和 jpa 实体)。
设想:
如果我在任何 cdi bean 中直接注入在 ejb jar 中定义的会话 bean,jboss 无法找到要注入的正确代理,并且throws a ClassCastException EjbManagerRemote field of my cdi bean cannot be cast to com.sun.proxy.$Proxy78
但是,对于 glassfish,这种情况非常有效。
为了规避 jboss 问题,我在战争中开发了一个会话 bean(类似于生产者:实际上打算这样做)文件,我在其中注入会话 bean,然后将此本地会话 bean 注入给我参考的 cdi bean到会话 bean。
我的问题是,为什么 jboss 无法注入远程会话 bean,而 glassfish 却没有问题?
我在 ejb 和 cdi bean 注入中缺少什么?
注意:我正在使用 @EJB 注释注入 bean。
谢谢
java - 在 CDI 视图范围的 bean (Weld, Seam 3) 上被覆盖的 @PostConstruct 调用了两次
我们在@PostConstruct
基类层次结构上遇到重复调用的问题。
首先是基类:
这是具体的子类(注意如何重写 init() 以调用 super.init()):
当呈现一些(未显示的)页面时,pseudoEntityManager
bean 被实例化,但是@PostConstruct
被调用了两次。这是输出:
当在具体子类中注释覆盖init()
方法以使超类中只有一个方法时,将生成以下输出:@PostConstruct
问:
现在根据 CDI 规范的正确行为是什么?(参考任何人?)
笔记:
我在研究时还发现了这个邮件列表对话:
在谈话中,一些大师倾向于说“应该只调用子类上的@PostConstruct 方法”。如果您仔细阅读,有一个 Weld 错误的链接,据说该错误自 Weld 1.1.5 起已解决:
https://issues.jboss.org/browse/WELD-1225
这个问题真的解决了吗?根据我得到的输出,它不是。
环境:焊接 1.1.8 和 Seam 3 以使 CDI @ViewScoped 正常工作(在 GlassFish 3.1.2 上)。
java-ee-6 - CDI Injection 为多模块项目提出“WELD-001408”
我有一个包含一些 Web 工件 (.war) 的项目,并且在注入简单 POJO 时遇到了问题。以下代码代表最简单的工作案例:
.war (WAR1)
.war 中的 POJO (WAR1)
当我添加一个带有相同 POJO (MyPojo) 打包的 Web 工件 (.war --> WAR2) 时,就会出现问题。从语义上讲,我希望我的 POJO 在每个 Web 工件中,而不是外部存档 (.jar)。基本上,最新添加的组件(WAR2)与 WAR1 相同,即它模拟就好像它存在一个多模块项目一样。在运行时,容器在尝试使用模块时会引发以下错误:
一些场景细节:
- 如果我删除 WAR2,则 WAR1 进行的注入开始起作用。
- 两个工件(WAR1 和 WAR2)都具有相同的 POJO 和 beans.xml (/WEB-INF)。
我有什么遗漏吗?我所需要的只是注入一个类的可能性,例如“*.Helper”。据我所知,CDI 甚至允许注入原始类型。
- JDK 1.7
- JBoss 6.1.0
- 焊接 1.1.Beta2
java - Weld ignores producer
I'm trying to deploy a war into a JBoss AS 7.1.1 server and the deploy fails while trying to inject the EntityManager:
Normally I would expect that this would result from Weld being unable to find a suitable bean to be injected. However, I define a producer for the EntityManager thus:
The injection-point about which it complains appears as follows:
In another project exactly the same setup worked just fine. Any ideas?
jsf-2 - CDI/WELD 可以将自定义限定符与 @Named 注释结合使用吗?
虽然具有 CDI 支持的自定义限定符,如下所示:
我想直接绑定 FooBean #{fooBean} 而不需要包装器或处理器(从这个例子看到)。注释“命名”(在类 FooBean 中)似乎不适用于我的类布局。
我想知道为什么它不工作和调用的解决方案(没有包装器): Target Unreachable, identifier 'fooBean' resolve to null
有人知道吗?
dependency-injection - 在 Wildfly 中用于模块间服务注入的 OSGI 替代方案是什么?
我们正在解开一个经典的遗留单片 EAR 封装的 Java EE 应用程序。我们(最复杂的)组件布线模式如下:组件 A“需要”接口 X,而组件 B 和 C (... N) 各自“提供”接口 X。我们的要求是打包和部署 A、B、C和 X 分开独立,以最大限度地减少停机时间并最大限度地减少业务影响。
因此,我们需要必要的稳健性以允许在运行时删除和添加(重新部署)接口的提供者(B,C),而无需重新部署接口的消费者(A),也不需要重新启动服务器。该解决方案将在 Wildfly 8 上运行,但只要它们在 Wildfly 8 上运行,就可以使用其他技术。
我们已经使用 JBoss-OSGI 和 Weld-OSGI 实现了一个 POC,它满足了我们的所有要求,并为我们提供了一个极好的迁移路径。然而,在 Wildfly 8 Alpha 3 中,JBoss-OSGI 已从默认发行版中移除。这让我们认为我们应该探索更符合 Wildfly 背后人们的想法的替代方案。
因此,问题是,在 Wildfly 8 上,对于满足我们要求的模块间服务注入的 OSGI 替代方案是什么?
为了预算、简单性、性能开销和公司政策,我们不得不消除以下内容:
1. 远程 EJB
2. Web 服务
3. JSON/Rest
4. SCA
请注意,这不是要求就 OSGI 的可行性进行辩论,也不是要求评估或比较不同的解决方案。我只是在寻找任何符合我们标准且不基于 OSGI 的解决方案。
jsf - 如何为 NonexistentConversationException 配置错误页面位置?
?cid=XX
我需要帮助处理URL 中的过期/不存在的对话。我试图把
然而这些都不起作用。我仍然收到错误消息,无法转发index.xhtml
。我怎么解决这个问题?
jakarta-ee - 选择性地从 CDI 扫描中排除软件包
如何使用 Java EE 7 技术堆栈从 Glassfish 4 中的 CDI 扫描中排除部分或全部包?
我尝试了Weld 文档中描述的机制,但它似乎不适用于 Glassfish 4。
java - 使用 CDI-Weld 注入继承的属性值
我正在开发一个基本的 Swing 应用程序,即使我总是倾向于使用 Spring Ioc(带有 xml 配置)进行依赖注入,我也想尝试 CDI-Weld。在 Spring 中完成以下结构后,容器创建 aSchoolBoy
和 a UniversityStudent
,每个都有其名称。
@Inject @Config
我已经看到可以使用注释在 CDI 中做类似的事情。但是,每次我看到这个,它们都在属性本身之上,并且作为一个继承的属性,我不能在这里为我的类这样做。我如何实现每个Student
子类以获得自己的name
价值?
更新
在子类中注入这些值并不一定意味着在配置文件中硬编码它们。属性值本身可以从.properties文件中获取。但是,考虑到遗留项目的边缘情况,Student
我想从中继承我的类并注入该属性,解决方案可能是什么?
spring - Error Weld when starting WildFly 8 with Spring 3
When I update my application, from Jboss-as 7.1.1.Final to Wildfly 8.0.0.Alpha4, there was an error that I can not fix.
I think this error is related to the new version of org.jboss.weld modules, which were 1.1 in the previous version of JBoss, and now, in this new version of WildFly is 2.0.3. As is in "JBOSS_HOME\modules\org\jboss\weld\[...]\main"
Thanks for helping!