Java ApacheKaraf-缺少依赖项(看起来像是数据源)
当我启动Karaf时,我得到以下错误。我的一位同事拥有完全相同的功能、捆绑包等,但没有得到错误。我们都使用Windows10和Karaf4.0.7 如果事实上他只是压缩了他的Karaf文件夹并把它给了我。所以我们的卡拉夫装置是相同的。现在我正试图让它在我的机器上工作 那它怎么能在我本地的机器上不工作呢 我不太了解卡拉夫,所以我不知道如何进一步排除故障。原因可能是什么 可能是我本地Maven repo中的某个jar文件丢失了吗 (我的同事有,但我没有)?我听说Karaf正在这里寻找一些组件Java ApacheKaraf-缺少依赖项(看起来像是数据源),java,osgi,apache-karaf,osgi-bundle,Java,Osgi,Apache Karaf,Osgi Bundle,当我启动Karaf时,我得到以下错误。我的一位同事拥有完全相同的功能、捆绑包等,但没有得到错误。我们都使用Windows10和Karaf4.0.7 如果事实上他只是压缩了他的Karaf文件夹并把它给了我。所以我们的卡拉夫装置是相同的。现在我正试图让它在我的机器上工作 那它怎么能在我本地的机器上不工作呢 我不太了解卡拉夫,所以我不知道如何进一步排除故障。原因可能是什么 可能是我本地Maven repo中的某个jar文件丢失了吗 (我的同事有,但我没有)?我听说Karaf正在这里寻找一些组件
data-access (2381)
------------------
Status: Failure
Blueprint
10/15/19 4:51 PM
Exception:
null
java.util.concurrent.TimeoutException
at org.apache.aries.blueprint.container.BlueprintContainerImpl$1.run(BlueprintContainerImpl.java:371)
at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
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)
Missing dependencies:
(&(osgi.unit.name=ybkDS)(objectClass=javax.persistence.EntityManager)) (&(osgi.unit.name=ybDS)(objectClass=javax.persistence.EntityManagerFactory))
事实上,当我启动Karaf时,我先得到了几分钟,然后我得到了我上面发布的错误
karaf@root()> bundle:diag
Bundle 53
---------
Status: Installed
Unsatisfied Requirements:
data-access (2384)
------------------
Status: GracePeriod
Blueprint
10/15/19 6:36 PM
Missing dependencies:
(&(osgi.unit.name=ybDS)(objectClass=javax.persistence.EntityManagerFactory)) (&(osgi.unit.name=ybkDS)(objectClass=javax.persistence.EntityManager))
website-performance (2385)
--------------------------
Status: GracePeriod
Blueprint
10/15/19 6:36 PM
Missing dependencies:
(&(osgi.unit.name=ybDS)(objectClass=javax.persistence.EntityManagerFactory)) (&(osgi.unit.name=ybkDS)(objectClass=javax.persistence.EntityManager))
我没有的东西是什么?EntityManager和EntityManagerFactory都依赖于OSGi服务,它们的属性都是OSGi.unit.name=ybkDS。这些服务不会提供。您可以首先在diag中观察到这一点。5分钟后,blueprint容器放弃等待这些服务并记录错误 因此,您必须调试为什么这些服务无法提供。能否提供有关如何实例化EntityManager的更多信息 我猜您使用的是ApacheAries JPA,也可能是ops4j pax jdbc。 在本例中,您需要检查数据源是否启动(也应该是一个OSGi服务),以及是否安装了正确的jpa impl(如hibernate)
如果您可以上传日志(特别是aries和pax jdbc的所有内容),也会有所帮助。非常感谢您的回复。。。我不确定我是否能做到这一切。正如我所说,我对卡拉夫,奥斯基,所有这些东西都不熟悉。。。如果你能具体指导我在这里提取和上传什么,那就太好了。另外,我的同事有相同的Karaf文件夹,但没有问题。所以我想是卡拉夫的外部原因导致了这些问题。猜猜看……你可以把日志改成“org.ops4j.pax.jdbc”。好的。。。顺便说一句,我开始在你的网站上阅读卡拉夫教程:)但我时间有限,事实上我不需要成为卡拉夫专家。。。我只需要让它运行,以便测试其中的一些web服务。。。谢谢你的帮助,非常感谢。我可以试着在这里和你聊天吗?可以。如果不需要太长时间的话。谢谢,我会看看是否有可能。顺便说一句,我的日志文件中没有关于org.ops4j.pax.jdbc的内容。它只有这个超时错误。我将看看是否可以启用更详细的日志记录。