我是Java Spring框架的新手。我已经创建了一个自定义捆绑包,并希望在处女座服务器中部署jar / bundle。但我无法成功完成。
这是我的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 bundler
后更新的依赖jar文件
我还更新了template.mf
和pom.xml
但问题仍然存在。
答案 0 :(得分:1)
问题是sapjco3.jar
不是OSGi Bundle。它只是一个普通的旧Jar文件。您需要将其转换为OSGi包。在Eclipse或任何Eclipse变体中,请执行以下步骤。您只能对Import-Package
<{1}}中Export-Package
中列出的包使用MANIFEST.MF
新 - &gt;项目
现有存档中的插件 - &gt;添加外部并加载Jar并单击下一步。
提供名称并选择一个OSGi框架单选按钮,然后单击“完成”。
现在您将创建一个新项目。转到MANIFEST.MF
文件和运行时选项卡和导出包,单击添加按钮,然后选择列出的所有包。
最后,您的MANIFEST.MF
应该包含所有包的Export-Package:
,如下所示。
现在右键单击该项目,然后单击“导出并选择Java” - > Jar文件。
选择要导出的文件。忽略Eclipse特定文件和pom文件。
单击下一步,直到看到Manifest Selection并选择Use existing manifest选项,然后在项目中选择META-INF中的MANIFEST.MF
。
单击完成并在处女座服务器中使用该Jar。将其放在VIRGO_HOME / repository / usr。
中