问题标签 [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.

0 投票
1 回答
113 浏览

java - 你能让 jboss Weld 在开发过程中不断扫描新添加的类吗?

我正在用焊缝在tomcat 6.0.29 上建立一个JSF2 项目。也使用 jrebel - 不确定这是否有所作为。

在测试 JRebel 时,我可以看到更新容器启动时存在的类处理得很好。

但是,如果我添加了一个新定义的 CDI 组件类并在不重新启动应用服务器的情况下重新展开应用程序,我无法从 facelets 访问它,直到我重新启动。JRebel 似乎正在加载类,所以我猜焊接没有在 beanmanager 中注册它

我意识到 CDI 是为了在启动时连接配置,但是最好有某种开发开关来启用连续扫描,就像 JSF 有一个开发模式来获取更改的 facelet 模板一样。

这和 JRebel 提供的功能将极大地提高生产力。

可以这样做吗?快速查看了焊接文档,但找不到任何东西。

谢谢。

0 投票
2 回答
5208 浏览

java-ee-6 - CDI - 观察容器事件

我正在尝试观察 CDI Web 应用程序的启动和关闭事件。我有一个监听这些事件的 ApplicationScoped bean:

我在日志中看不到任何内容。

我错过了什么?

0 投票
2 回答
3211 浏览

java - CDI 可以减少到 Java SE 吗?

JSR-330 依赖注入可以应用于 Java SE 和 Java EE 环境,而 JSR-299 的标题是“Java EE 平台的上下文和依赖注入”。

除了严格面向 Java EE 的特性外,还有哪些 CDI 特性对 Java SE 有意义?有可用的例子吗?谢谢!

[修订] 这是JSE 上的 Weld。

0 投票
4 回答
5611 浏览

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

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

并在 beans.xml 中声明:

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

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

0 投票
3 回答
2689 浏览

asynchronous - Weld - 异步事件观察器

我正在使用 Weld 来观察事件。我认为有一种方法可以指定观察者是否是异步的,但我没有找到该注释或文档。

观察者可以是异步的吗?如果可以,我需要做什么才能做到这一点?

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 回答
611 浏览

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

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

0 投票
2 回答
15939 浏览

java - 在 CDI(焊接)中注入对象列表

假设我有一个名为 的接口,以及SocialNetworkService三个实现 -TwitterService和.FacebookServiceFriendFeedService

现在我想,每当我的托管 bean(或任何 Web 组件)收到消息时,在所有社交网络中共享它。我试过:

但它不起作用(部署错误)。(也尝试了@Any预选赛 - 结果相同)

那么,有没有办法注入接口的所有(或部分)实现的列表?

我知道给定注入点不应有多个可能的 bean 的规则。我想我可以通过创建一个生成列表的生产者并使用来实现这一点Instance<SocialNetworkService>,但这对于这项任务来说似乎太多了。

0 投票
1 回答
371 浏览

api - 如何使用 Weld 注入外部 API bean - JSR-299

我很清楚如何使用 Weld 注入我的域中的对象(我可以访问源)。您只需使用@Named 和@ApplicationScoped 等注释实现,然后使用@Inject 注释目标属性以注入实现。

但是,不确定如何注入我无权访问其源代码的类的实现。例如,我正在使用推土机。Dozer mapper 是针对接口(Mapper)进行编程的,我希望 Weld 注入实现(DozerBeanMapper),但由于我无法访问源代码,因为我使用的是 .jar 依赖项,因此我无法对其进行注释。

关于如何实现这一目标的任何想法?