0

我是 Java Spring 框架的新手。我已经创建了一个自定义捆绑包,并希望在 virgo 服务器中部署 jar/捆绑包。但我无法成功这样做。

这是我的 template.mf 文件屏幕,我在其中添加了依赖项

在此处输入图像描述

这是我的 java 文件,我在其中导入了包

在此处输入图像描述

这是原始的jar文件屏幕

在此处输入图像描述

这是我pom.xml添加依赖项的地方

在此处输入图像描述

但是一旦在 Maven 构建之后部署 jar 文件(不会引发错误),我就会不断收到错误消息

Caused by:  org.eclipse.virgo.kernel.osgi.framework.UnableToSatisfyBundleDependenciesException: Unable to satisfy dependencies of bundle 'com.xyz.costfromsap.application' at version '1.4.0.RELEASE': Cannot resolve: com.xyz.costfromsap.application
Resolver report:
    An Import-Package could not be resolved. Caused by missing constraint in bundle <com.xyz.costfromsap.application_1.4.0.RELEASE>
         constraint: <Import-Package: com.sap.conn.jco; version="[3.0.0,4.0.0)">

这是我将其转换为 OSGI 捆绑器后更新的依赖 jar 文件

在此处输入图像描述

我还更新了template.mfpom.xml

在此处输入图像描述 在此处输入图像描述

但问题仍然存在。

4

1 回答 1

1

问题是sapjco3.jar它不是 OSGi Bundle。它只是一个普通的旧 Jar 文件。您需要将其转换为 OSGi 包。在 Eclipse 或任何 Eclipse 变体中,请遵循以下步骤。您只能在捆绑Import-Package包中列出的包上使用Export-PackageMANIFEST.MF

新建 -> 项目

在此处输入图像描述

Plugin from Existing Archive -> Add External 并加载您的 Jar 并单击 Next。

在此处输入图像描述

命名并选择一个 OSGi 框架单选按钮并单击完成。

在此处输入图像描述

现在您将创建一个新项目。转到MANIFEST.MF文件和运行时选项卡和导出包,单击添加按钮并选择列出的所有包。

在此处输入图像描述

最后,您MANIFEST.MF应该拥有Export-Package:所有软件包,如下所示。

在此处输入图像描述

现在右键单击项目并单击导出并选择 Java -> Jar 文件。

在此处输入图像描述

选择要导出的文件。忽略 Eclipse 特定文件和 pom 文件。

在此处输入图像描述

单击下一步,直到看到 Manifest Selection 并选择 Use existing manifest 选项并MANIFEST.MF在项目中选择 in META-INF。

在此处输入图像描述

单击完成并在您的 Virgo 服务器中使用该 Jar。将它放在 VIRGO_HOME/repository/usr 中。

于 2015-04-14T07:00:30.507 回答