Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将外部jar文件添加到OSGi应用程序会导致问题_Java_Eclipse_Jar_Osgi_Osgi Bundle - Fatal编程技术网

Java 将外部jar文件添加到OSGi应用程序会导致问题

Java 将外部jar文件添加到OSGi应用程序会导致问题,java,eclipse,jar,osgi,osgi-bundle,Java,Eclipse,Jar,Osgi,Osgi Bundle,我是Java OSGi编程新手。我正在创建一个名为com.myManager的新捆绑包,并将其添加到一个包含许多捆绑包的现有应用程序中 我创建的这个包依赖于一个名为jsoup-1.12.1的外部jar文件,该文件用于解析html文件。我可以通过eclipse添加这个依赖项,我的包构建得很好 然而,当我尝试将我的bundle添加到主bndrun应用程序时,我得到下面的粘贴错误。不幸的是,我无法理解这里需要什么 我想我们不能像我那样简单地添加外部jar文件?提前谢谢 Resolution faile

我是Java OSGi编程新手。我正在创建一个名为com.myManager的新捆绑包,并将其添加到一个包含许多捆绑包的现有应用程序中

我创建的这个包依赖于一个名为jsoup-1.12.1的外部jar文件,该文件用于解析html文件。我可以通过eclipse添加这个依赖项,我的包构建得很好

然而,当我尝试将我的bundle添加到主bndrun应用程序时,我得到下面的粘贴错误。不幸的是,我无法理解这里需要什么

我想我们不能像我那样简单地添加外部jar文件?提前谢谢

Resolution failed. Capabilities satisfying the following requirements could not be found:
[<<INITIAL>>]
  ⇒ osgi.identity: (osgi.identity=com.myManager)
      ⇒ [com.myManager version=0.0.0]
          ⇒ osgi.wiring.package: (&(osgi.wiring.package=org.jsoup))

到目前为止,您只将jsoup添加到包的构建时依赖项中。然后在捆绑包中使用jsoup在捆绑包清单中创建导入包声明。这是意料之中的,不是问题。 您看到的错误是,在组装时,当bnd创建应用程序的runbundles列表时,存储库中没有可以提供此包的包

Jsoup已经是一个OSGi包了。只需将它添加到应用程序的捆绑包中,就完成了。如何将jsoup添加到捆绑包取决于如何组装应用程序。对于EclipsePDE,您可以将其添加到目标平台。对于ApacheKaraf,您可以将其添加到功能中


对于具有maven构建的新bndrun,只需将jsoup添加到构建存储库的pom中即可。像这样。将捆绑包放在存储库中允许bndtools为您的应用程序选择需要的捆绑包。

到目前为止,您只将jsoup添加到捆绑包的构建时依赖项中。然后在捆绑包中使用jsoup在捆绑包清单中创建导入包声明。这是意料之中的,不是问题。 您看到的错误是,在组装时,当bnd创建应用程序的runbundles列表时,存储库中没有可以提供此包的包

Jsoup已经是一个OSGi包了。只需将它添加到应用程序的捆绑包中,就完成了。如何将jsoup添加到捆绑包取决于如何组装应用程序。对于EclipsePDE,您可以将其添加到目标平台。对于ApacheKaraf,您可以将其添加到功能中


对于具有maven构建的新bndrun,只需将jsoup添加到构建存储库的pom中即可。像这样。将捆绑包放在存储库中允许bndtools为您的应用程序选择需要的捆绑包。

OSGi容器抱怨它无法解析包org.jsoup,而您的新捆绑包依赖于该包。您必须将jsoup库作为捆绑包部署(如果打包为捆绑包),或者将该库嵌入到您的捆绑包中。@gioranv将该库嵌入到我的捆绑包中。我该怎么做呢?我已经在将它添加到包中的lib文件夹中,并通过Eclipse将其配置为包的依赖项。感谢Christian回答的建议。幸运的是,现在大多数库都打包成了包。OSGi容器抱怨它无法解析包org.jsoup,而您的新包依赖于它。您必须将jsoup库作为捆绑包部署(如果打包为捆绑包),或者将该库嵌入到您的捆绑包中。@gioranv将该库嵌入到我的捆绑包中。我该怎么做呢?我已经在将它添加到包中的lib文件夹中,并通过Eclipse将其配置为包的依赖项。感谢Christian回答的建议。幸运的是,现在大多数库都打包成了包。谢谢。我还是不完全理解这些。我只有jar文件,我将它添加到依赖项中。我不认为jsoup可以作为一个选项添加到我的应用程序包中。谢谢。我还是不完全理解这些。我只有jar文件,我将它添加到依赖项中。我不认为jsoup可以作为一个选项添加到我的应用程序中。