无法从 osgi karaf 中的 src/main/resources 个依赖项导入资源

Unable to import resources from src/main/resources of dependencies in osgi karaf

将现有的 spring 项目迁移到 osgi karaf 时,我们在从依赖 bundle.Eg.
导入资源时遇到问题 Bundle A 有 appcontxt-A.xml,而 Bundle B 有 appcontext-B.xml

在这里,我将 Bundle B 中的 appcontxt-A.xml 称为 (<import resource="classpath:appContext-A.xml" />),为此我得到了 Caused by: java.io.FileNotFoundException: class path resource [appContext-A.xml] cannot be opened because it does not exist.

如何提前实现上面定义的scenario.Thanks。

我不完全清楚你究竟是如何尝试访问 appContext-A.xml 资源的,因为你没有包含任何代码示例,但是请记住,在 OSGi 中,包 A 和 B 有不同的类加载器因此,您将无法直接从 bundle B 获取 bundle A 的资源。您可以做的是通过 BundleContext 获取对 bundle A 的引用,并从那里获取您需要的资源。类似于以下内容:

bundleContext.getBundle(bundleA).getResource(resource)

根据进一步添加的信息,很明显,您需要确保 bundle A 确实导出了资源,并且 be 确实导入了它。 此外,您需要确保像克里斯蒂娜所说的那样检索该资源。

如果您使用的是基于 Spring 的方法,请确保您也可以使用 Spring-DM。

经过长期研究解决文件不存在的问题已通过(在类路径后添加 *)解决。但是,在访问 "context:annotation-config" 时存在另一个问题 Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/context],有解决此问题的帮助吗?