当前位置: 首页 > 知识库问答 >
问题:

CDI是否可以在注入时扫描配置的文件夹以查找bean?(热部署)

程成天
2023-03-14

我有一个在Apache Tomee上运行的Java EE6 Web应用程序。

我的应用程序定义了几个接口a、B和C。我有多个包含这些接口实现的.jar文件。每当客户端发出某个请求时,我的web应用程序就会使用CDI扫描这些实现,并注入所需的任何实现。

但是,我不想预先按名称配置所有这些implement.jar文件。我希望只配置一个文件夹位置,所有这些实现.jar文件都驻留在其中,并让CDI进行发现。我想让CDI在每次注入时重新扫描这个文件夹,这样我就可以添加和删除.jar文件,而不用重新启动我的web应用程序。

使用Tomcat的VirtualWebappLoader或TomEE(1.6.0)的jars.txt,我能够成功地设置这样一个文件夹,并使CDI inject.jar beans在应用程序启动时可用。然而,

  • 我无法注入在应用程序启动时不可用但后来由我添加的.jar bean
  • 我的web应用程序继续使用我已完全删除.jar的注入bean

我能用CDI实现这样的“热部署”吗?如果不是,你能帮我理解一下为什么吗?

共有1个答案

文寒
2023-03-14

不,这是不可能的。CDI在部署时扫描文件。

 类似资料:
  • 我想将和bean注入到我的实现中,但是我得到了。 我使用tomcat和weld实现来实现CDI。我开始将JSF2.2迁移到2.3,因此从改为CDI。我将替换为以及迁移过程中必须做的其他事情,如:-向每个模块添加beansxml-向上下文添加BeanManager-从faces删除bean声明-config.XML-将SPI作为resource-env-ref添加到web.XML如何向实现注入bea

  • 我正在构建一个应用程序,它将从用户那里提取一个单词,然后使用XPath扫描文件,根据文件中是否找到该单词返回true或false。 我已经构建了以下实现XPath的类,但我要么误解了它应该如何工作,要么我的代码有问题。有人能给我解释一下如何使用Xpath进行完整的文件搜索吗? 以及我目前正在测试的xml文件。 找到解决方案后,我丢失了找到的条目的正确显示,正如有人在注释“java”中指出的那样,我

  • 在Spring DI中,将autowired字段声明为可选字段可以使客户端不向其注入任何值。使用Java EE的CDI是否可能做到这一点?我试过可选但失败了。我想知道是否有一个等价的机制我可以使用。 下面是我尝试的: 我得到一个错误消息:线程“main”org.jboss.weld.exceptions.deploymentexception:WELD-001408在注入点[[BackedAnno

  • 我有一个需要上传到hybris的csv文件。CSV文件中的数据将在Hybris的不同表中加载。 目前,hybris采用CSV文件,一个文件有一个映射(即impex头)。 我们可以在hotfolder配置中对单个CSV文件使用多个impex,以便将数据加载到不同的表中吗 谢谢Sanjay Vithani。

  • 问题内容: 尽管我们已部署了最新的类,但我们正在使用的是旧版本的类。要扫描应用程序服务器所有子文件夹中的所有JAR文件,我们如何编写一个小的Shell脚本来打印出找到该特定类的JARS文件的文件名? 问题答案: 就像是: 您可以这样包装: 然后将在当前目录下找到的所有jar文件中搜索该类

  • 问题内容: 以编程方式检查PDF文件是否被完全扫描的最佳方法是什么?我确实可以使用iText和PDFBox。我可以检查pdf文件是否包含文本,并根据结果确定该文件是否为OCRed,但是此解决方案并非100%准确。我想知道是否还有另一种方法来解决这个问题。 如您所知,解决方案必须基于Java。 问题答案: 最好的选择是检查它是否包含文本,还查看它是否包含大的页面化图像或覆盖页面的大量平铺图像。如果您