3

我正在开发一个需要 org.apache.http 包的 osgi 包。目标平台有一个 httpcommponents 包,其中包含这些包,因为当我在包的清单中声明这些依赖项时我已经看到它们,并且 Eclipse 自动将包添加到插件依赖项列表中。问题是当我import org.apache.http. 如果我浏览该捆绑包,它只有包 org.apache.http 中的激活器,并且在 lib 文件夹中包含我需要的包的 jar。我怎样才能访问这些包?启动激活器并在运行时获取我需要的类?一种解决方案是手动将 org.apache.http jar 添加到我的包的构建路径中。对不起,如果这是一个愚蠢的问题......

谢谢

4

2 回答 2

1

你可能想看看这个问题,关于你的构建问题。无论谁为您构建目标平台,都采取了错误的方法,这就是造成您悲痛的原因。

您的目标平台实际上应该使用公共库的 OSGi 版本。如果没有 OSGi 就绪版本,您可以从Springsource bundle repository获取它们。

如果这不可能(解决这个问题),那么您可以简单地更改构建的类路径以包含适当的库。无论如何,它应该已经在运行时工作。

PS - 这不是一个愚蠢的问题;-)

于 2012-04-19T16:19:48.887 回答
0

当您尝试启动捆绑软件时,您基本上需要确保您的 OSGi 容器运行org.apache.http捆绑软件。有几种方法可以做到这一点。您可以手动将 jar 复制到部署目录中,也可以使用OSGi Bundle Repository (OBR)之类的东西。使用 OBR,当您安装一个包时,它的所有依赖项也会被下载并安装。

您可以使用maven OSGi 插件托管您自己的 OBR 。这将读取您的捆绑包的清单文件并使用该信息创建一个本地 OBR。然后,您可以从控制台使用 OBR 来安装您的捆绑包,以及它的所有依赖项。

于 2012-04-18T17:35:44.800 回答