opendaylight Boron 在功能安装 odl-dlux-core 时崩溃
opendaylight Boron crash when feature install odl-dlux-core
我在 Windows 7 x64 和 Java8 101 上使用 distribution-karaf-0.5.0-Boron 版本的 opendayligth 控制器。
当我运行
feature:install odl-dlux-core
我遇到这样的错误:
opendaylight-user@root>feature:install odl-dlux-core
Uncaught error from thread [opendaylight-cluster-data-akka.persistence.dispatche
rs.default-plugin-dispatcher-23] shutting down JVM since 'akka.jvm-exit-on-fatal
-error' is enabled for ActorSystem[opendaylight-cluster-data]
java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni6
4-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, E:\odl\distr
ibution-karaf-0.5.0-Boron\data\cache\bundle202\version0.0\bundle.jar-lib[=11=]\META-
INF\native\windows64\leveldbjni.dll: Can't find dependent libraries, E:\odl\dist
ribution-karaf-0.5.0-Boron\data\tmp\leveldbjni-64-1-2257453289313732372.8: Can't
find dependent libraries]
at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:187)
at org.fusesource.hawtjni.runtime.Library.load(Library.java:143)
at org.fusesource.leveldbjni.JniDBFactory.<clinit>(JniDBFactory.java:48)
at akka.persistence.journal.leveldb.LeveldbStore$class.leveldbFactory(Le
veldbStore.scala:44)
at akka.persistence.journal.leveldb.LeveldbJournal.leveldbFactory(Leveld
bJournal.scala:22)
at akka.persistence.journal.leveldb.LeveldbStore$class.preStart(LeveldbS
tore.scala:170)
at akka.persistence.journal.leveldb.LeveldbJournal.preStart(LeveldbJourn
al.scala:22)
at akka.actor.Actor$class.aroundPreStart(Actor.scala:489)
at akka.persistence.journal.leveldb.LeveldbJournal.aroundPreStart(Leveld
bJournal.scala:22)
at akka.actor.ActorCell.create(ActorCell.scala:590)
at akka.actor.ActorCell.invokeAll(ActorCell.scala:461)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:483)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:282)
at akka.dispatch.Mailbox.run(Mailbox.scala:223)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at java.lang.Thread.run(Thread.java:745)
我做了一些修改link:
包括:
- 添加felix.native.osname.alias.windows7=windows 7,win32
etc/system.属性
- 更改 karaf.framework=felix 在 custom.properties
- 而且我已经将 leveldbjni 自动下载到我的本地 maven 库中。
但我还是遇到了同样的问题,我是不是遗漏了什么?
最终通过安装 vc 2010 x64 重新分发包解决。
https://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe
步骤:
- 下载“[Dependency Walker][1]”,将develdbjni.dll拖入dependency walker。
- 你可以看到DW里面少了哪个dll。
- google 哪个包包含丢失的 dll。
我在 Windows 7 x64 和 Java8 101 上使用 distribution-karaf-0.5.0-Boron 版本的 opendayligth 控制器。
当我运行
feature:install odl-dlux-core
我遇到这样的错误:
opendaylight-user@root>feature:install odl-dlux-core
Uncaught error from thread [opendaylight-cluster-data-akka.persistence.dispatche
rs.default-plugin-dispatcher-23] shutting down JVM since 'akka.jvm-exit-on-fatal
-error' is enabled for ActorSystem[opendaylight-cluster-data]
java.lang.UnsatisfiedLinkError: Could not load library. Reasons: [no leveldbjni6
4-1.8 in java.library.path, no leveldbjni-1.8 in java.library.path, E:\odl\distr
ibution-karaf-0.5.0-Boron\data\cache\bundle202\version0.0\bundle.jar-lib[=11=]\META-
INF\native\windows64\leveldbjni.dll: Can't find dependent libraries, E:\odl\dist
ribution-karaf-0.5.0-Boron\data\tmp\leveldbjni-64-1-2257453289313732372.8: Can't
find dependent libraries]
at org.fusesource.hawtjni.runtime.Library.doLoad(Library.java:187)
at org.fusesource.hawtjni.runtime.Library.load(Library.java:143)
at org.fusesource.leveldbjni.JniDBFactory.<clinit>(JniDBFactory.java:48)
at akka.persistence.journal.leveldb.LeveldbStore$class.leveldbFactory(Le
veldbStore.scala:44)
at akka.persistence.journal.leveldb.LeveldbJournal.leveldbFactory(Leveld
bJournal.scala:22)
at akka.persistence.journal.leveldb.LeveldbStore$class.preStart(LeveldbS
tore.scala:170)
at akka.persistence.journal.leveldb.LeveldbJournal.preStart(LeveldbJourn
al.scala:22)
at akka.actor.Actor$class.aroundPreStart(Actor.scala:489)
at akka.persistence.journal.leveldb.LeveldbJournal.aroundPreStart(Leveld
bJournal.scala:22)
at akka.actor.ActorCell.create(ActorCell.scala:590)
at akka.actor.ActorCell.invokeAll(ActorCell.scala:461)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:483)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:282)
at akka.dispatch.Mailbox.run(Mailbox.scala:223)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at java.lang.Thread.run(Thread.java:745)
我做了一些修改link:
包括:
- 添加felix.native.osname.alias.windows7=windows 7,win32 etc/system.属性
- 更改 karaf.framework=felix 在 custom.properties
- 而且我已经将 leveldbjni 自动下载到我的本地 maven 库中。
但我还是遇到了同样的问题,我是不是遗漏了什么?
最终通过安装 vc 2010 x64 重新分发包解决。
https://download.microsoft.com/download/3/2/2/3224B87F-CFA0-4E70-BDA3-3DE650EFEBA5/vcredist_x64.exe
步骤:
- 下载“[Dependency Walker][1]”,将develdbjni.dll拖入dependency walker。
- 你可以看到DW里面少了哪个dll。
- google 哪个包包含丢失的 dll。