问题标签 [cdi]

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 投票
4 回答
5611 浏览

java-ee-6 - 配置拦截器以用于应用程序内的所有 CDI-Bean

在我的 JEE6-CDI-webapp 中,我声明了一个安全拦截器,如下所示:

并在 beans.xml 中声明:

为了使用它,我相应地注释了一个 CDI-bean:

现在我问自己,我是否必须注释我所有的 CDI-Bean 才能使用这个拦截器?或者有没有办法配置 beans.xml 为我所有的 CDI bean 使用拦截器,而不必为每个 bean 声明它?

0 投票
1 回答
758 浏览

java - CDI 激活打包在 jar 中的生产者

我有一个生产者,我想把它放在一个罐子里,这样我的差异战争文件就可以引用相同的实现

但现在,glassfish(3.0.1)无法自动发现生产者方法

如何解决这个问题?

0 投票
2 回答
1816 浏览

jpa - 使用 CDI + WS/RS + JPA 构建应用程序

这是用户管理器 impl

问题是如果我没有将 UserService 标记为 @Stateless 那么管理器字段为空

但是如果我标记@Stateless,我可以注入管理器字段,并且应用程序可以正常工作,因为我可以将数据保存到数据库中

只是想知道,这背后的原因是什么?

这是连接应用程序的首选方式吗?

好吧,我正在考虑将 EntityManager 拉出给生产者,以便可以共享

0 投票
1 回答
1019 浏览

jsf - setInterval jsf2.0 glassfish v3 和内存泄漏

伙计们,我是新来的,我不是英语。我在使用 js setInterval 时遇到问题,它每 X 秒在提交按钮上模拟用户点击。在页面中只有一个 h:form 和 h:commandButton。我使用分析器,我看到 java.util.HashMap 不断增加它的大小。几个小时后,使用的堆大小增长了很多,尊重起点。

请帮助我,这个问题让我发疯。

这是代码:


更新:1天后应用程序再次崩溃。现在我只使用了 setInterval 但我有 glassfish 生成的 heapDump 这是屏幕截图但我无法发布它,因为我的声誉太低。但是 java.lang.Object[] 消耗 20% 的堆,java.util.HashMap$Entry[]18% 和 HashMap 10% 知道吗?

更新:嗨,伙计们,我已经解决了我的问题,并在 CDI 依赖/注入中发现了一个错误。我已经解决了使用@ManagedBean 更改注释@Named 的问题,这解决了我的问题。在示例中,我省略了代码,因为我认为 CDI 没有错误。显然,使用 @Named 注释的 Bean 具有请求范围,而 ApplicationScoped Bean 不会产生错误。我对 CDI 比较陌生,所以我必须在哪里报告错误?

0 投票
2 回答
5319 浏览

scope - CDI - 编写自定义上下文和范围

对于一些基于 CDI 的项目,我想拥有自己的上下文。我需要(想要)自定义范围,以便我可以隔离组件的寿命和位置。

要实现您自己的上下文,您需要实现非常不言自明的 Context 接口,但是您如何或在何处真正定义它何时创建?

0 投票
3 回答
2794 浏览

jakarta-ee - 同一实例中的 CDI 调用拦截器注释方法

这是我的DAO实现,我将加载整个表并在内存中缓存一段时间

这是我的球衣客户

在客户端,如果我调用 dataAccessFacade.loadAllTranslation(),我将看到拦截器逻辑已执行

如果我调用内部调用loadAllTranslation()的dataAccessFacade.getTranslation(),那么我没有看到拦截器被执行

这里有什么问题?

如何解决?

0 投票
1 回答
16471 浏览

tomcat - 在带有简单 POJO 类的 Tomcat 中使用 CDI (Weld)

经过 2 天的调试和尝试,除了向您寻求解决方案之外,我没有别的想法。

我想在 Tomcat WebApp 中使用 CDI(在 JEE6 上),只有简单的普通旧 java 对象(还)。据我所知,可以将 POJO java 类注入到其他 POJO Java 类中?!

这是我的示例类

  • 类 ToBeInjected(应用程序范围/单例)
  • 类 InjectingExample
  • ServletListener "ApplicationContextListener"

应用程序范围(单例)类“ToBeInjected”

注入上述类的“InjectingExample”类:

最后是创建 InjectingExample 实例并调用 sayHello()的ContextListener :

我正在使用带有以下WEB-INF/web.xml的 Tomcat 6 :

META-INF/context.xml

最后,我将“weld-tomcat-support-1.0.1-Final.jar”复制到 ${CATALINA_HOME}/libs。

在 Tomcat 中部署和运行 webapp 会引发 NullPointerException,因为 InjectingExample 类中的成员“bean”为空(未注入)。

据我了解,这应该有效。我错了吗?

感谢您对这里的关注。希望我已经提到了对您有帮助的所有重要内容。否则告诉我你需要什么。

最后是cataling.log中的日志文件输出:

0 投票
3 回答
8652 浏览

jsf-2 - 使用 CDI 而不是 @ManagedBean: UnproxyableResolutionException 因为超类没有无参数构造函数

我正在尝试将 CDI 用于我的 JSF/Java EE 应用程序。我有以下类层次结构:

当我尝试在 GF 3.1 上部署应用程序时,我收到以下 CDI/Weld 异常:

严重:加载应用程序时出现异常:WELD-001435 正常范围的 bean 类 com.web.AbstractCrudController 不可代理,因为它没有无参数构造函数。org.jboss.weld.exceptions.UnproxyableResolutionException: WELD-001435 普通范围的 bean 类 com.web.AbstractCrudController 不可代理,因为它没有无参数构造函数。在 org.jboss.weld.util.Proxies.getUnproxyableClassException(Proxies.java:215) 在 org.jboss.weld.util.Proxies.getUnproxyableTypeException(Proxies.java:166) 在 org.jboss.weld.util.Proxies.getUnproxyableTypesException (Proxies.java:191) 在 org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:134) 在 org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:148) 在 org.jboss。焊接引导验证器。

即使我向基类添加了无参数构造函数,Weld 仍然会抱怨该类不可代理,因为它具有最终方法。为什么 WELD 强迫我改变我的班级设计?使用 JSF @ManagedBean 注释一切正常。

我将不胜感激任何帮助。谢谢,西奥

0 投票
1 回答
340 浏览

java - CDI - 观察者观察事件时是否通知调用者?

我正在使用 CDI 并想知道调用者如何被通知观察者观察到或没有观察到事件。如果没有观察者对该事件采取行动,那么我想做点什么。除了提示调用者被通知外,我没有看到文档中的任何地方都记录了这一点。

谢谢,

沃尔特

0 投票
1 回答
611 浏览

tomcat - CDI /焊接网络应用程序的有用环境

我是焊接新手,并考虑使用 CDI(焊接)对 Web 应用程序有用的环境。我想使用 JSF 或 Wicket 进行演示,并使用 JPA/Hibernate 作为我的持久层(包括事务管理)。最明显的场景是使用带有 EJB3 的 JBoss 或 Glassfish 应用程序服务器,但是没有机会以合理的方式使用 tomcat 或其他“轻量级”servlet 容器吗?或者尝试开发一个没有 EJB/Seam 的 CDI-web 应用程序是荒谬的?
我对一些用户体验感兴趣!