2

在此先感谢您的帮助!我正在学习一个教程,当我尝试启动我在 karaf 中安装的捆绑包时,它不会启动......日志是:

20:12:18.713 错误 [Karaf 本地控制台用户 karaf] 执行命令 org.apache.karaf.shell.support.MultiException 时捕获异常:在捆绑包上执行命令时出错:启动捆绑包 157 时出错:无法解析 db-examplejpa [157] (R 157.0): 缺少要求 [db-examplejpa [157](R 157.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.service.command)(version>=0.6.0)(!(version>=1.0.0))) 未解决的要求:[[db-examplejpa [157] (R 157.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.service.command)(version>=0.6.0)(!(version>=1.0.0)))] 在 org.apache.karaf.shell.support .MultiException.throwIf(MultiException.java:61) ~[?:?] at org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:70) ~[?:?] at org.apache.karaf .bundle.command。59) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[ ?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:?] at java.lang.Thread.run(Thread.java:748) [?:?] :java.lang.Exception:启动捆绑包157时出错:无法解析db-examplejpa [157](R 157.0):缺少要求[db-examplejpa [157](R 157.0)] osgi.wiring.package;(&(osgi.wiring.package=org.apache.felix.service.command)(version>=0.6.0)(!(version>=1.0.0))) 未解决的要求:[[db-examplejpa [157] (R 157.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.service.command)(version>=0.6.0)(!(version>=1.0.0)))] 在 org.apache.karaf.bundle。Pipe.doCall(Pipe.java:416) ~[?:?] at org.apache.felix.gogo.runtime.Pipe.call(Pipe.java:229) ~[?:?] at org.apache.felix。 gogo.runtime.Pipe.call(Pipe.java:59) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?] at java.util.concurrent。 ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:?] at java.lang.Thread.run( Thread.java:748) [?:?] 引起:org.osgi.framework.BundleException:无法解析 db-examplejpa [157](R 157.0):缺少要求 [db-examplejpa [157](R 157.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.service.command)(version>=0.6.0)(!(version>=1.0.0))) 未解决的要求:[[db-examplejpa [157](R 157.0)] osgi.wiring.package; (&(osgi.wiring.package=org.apache.felix.service.command)(version>=0.6.0)(!(version>=1.0.0)))] 在 org.apache.felix.framework.Felix .resolveBundleRevision(Felix.java:4149) ~[?:?] at org.apache.felix.framework.Felix.startBundle(Felix.java:2119) ~[?:?] at org.apache.felix.framework.BundleImpl .start(BundleImpl.java:998) ~[?:?] at org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:38) ~[?:?] at org.apache.karaf.bundle .command.BundlesCommand.doExecute(BundlesCommand.java:65) ~[?:?] ... 还有 14 个

如果您有兴趣,该教程就是这个:http: //liquid-reality.de/Karaf-Tutorial/06/

我以为是版本问题,但我试图在 pom 中更改版本,但没有奏效。我在这里似乎有一些答案,但没有运气......

编辑:顺便说一句,我没有使用 bndtool ... 是必需的吗?嘟嘟没说什么

谢谢你!

4

1 回答 1

1

该示例不再匹配当前版本的 Apache Karaf 和 JPA。

您看到的问题意味着我们使用了一个包“org.apache.felix.service.command”,但没有导出这个包的包。在这种情况下,原因是此包中的注释已被弃用,并且当前 karaf 版本不再支持。

我已经为当前的 Apache Karaf 调整了示例,并且还转换为使用基于 lambda 的 JPA 样式以及声明式服务而不是蓝图。这使示例变得相当简单。

我希望这有帮助。

于 2019-05-26T08:54:27.080 回答