在处女座 - 服务器导入 - 包中无法解析。由束约束中缺少约束引起

时间:2015-04-13 14:07:40

标签: java spring maven jco

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

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

enter image description here

这是我的java文件,我已经导入了包

enter image description here

这是原始的jar文件屏幕

enter image description here

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

enter image description here

但是,一旦在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 bundler

后更新的依赖jar文件

enter image description here

我还更新了template.mfpom.xml

enter image description here enter image description here

但问题仍然存在。

1 个答案:

答案 0 :(得分:1)

问题是sapjco3.jar不是OSGi Bundle。它只是一个普通的旧Jar文件。您需要将其转换为OSGi包。在Eclipse或任何Eclipse变体中,请执行以下步骤。您只能对Import-Package <{1}}中Export-Package中列出的包使用MANIFEST.MF

新 - &gt;项目

enter image description here

现有存档中的插件 - &gt;添加外部并加载Jar并单击下一步。

enter image description here

提供名称并选择一个OSGi框架单选按钮,然后单击“完成”。

enter image description here

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

enter image description here

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

enter image description here

现在右键单击该项目,然后单击“导出并选择Java” - > Jar文件。

enter image description here

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

enter image description here

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

enter image description here

单击完成并在处女座服务器中使用该Jar。将其放在VIRGO_HOME / repository / usr。