1

我正在使用 CDI 创建一个 Java Web 应用程序。My War 包括各种作为 bean 源的 Jar 文件(包括 META-INF/beans.xml 文件)。在 JBoss 等 Java EE 容器中运行时会自动发现我的 bean(我目前使用的是 JBoss AS 7.1.1)。这一切运作良好。

我希望能够扩展 Web 应用程序,理想情况下是允许它从存储在可配置位置(因此在系统属性指定的位置)中的 Jar 文件加载类。这也很好,因为我可以使用 ClassLoader 来解析类和资源。我缺少的是让 CDI 扫描这些外部 Jar 文件并包含它们的 bean 的能力。

这将允许我的应用程序托管插件功能,包括新的 REST 资源。我不介意我是否必须重新启动应用程序才能获取这些外部 Jar 文件中包含的类和资源。

我看不出有办法做到这一点。这甚至是应该在这种环境下尝试的事情吗?

4

1 回答 1

1

我看不出有办法做到这一点。

你实际上有两个选择:

  1. 使用CDI 扩展机制启动时使用 bean / bean-archives并以您想要的方式修改它们。查看文档中提供的示例,这应该可以帮助您开始。
  2. 执行时使用BeanManager。看看这个类似的问题。
于 2012-07-10T13:46:49.753 回答