我是新来的。
我正在尝试在opendaylight控制器项目中导入一个jar依赖项(com.jcraft.jsch)。代码编译成功。但是,当控制器运行时,它会抛出以下错误。
!输入org.opendaylight.controller.samples.ssr 4 0 2013-10-11 10:25:14.624!消息FrameworkEvent错误!堆栈0 org.osgi.framework.BundleException:包FrameworkEvent 36“无法解决。原因:缺少约束:导入包: com.jcraft.jsch;“0.0.0”org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332) at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316) at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:323) at org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundle.java:390) at org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.java:1176) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:559) at org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(StartLevelManager.java:544) at org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLevelManager.java:457) at org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(StartLevelManager.java:243) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:438) at org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(StartLevelManager.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) 2013-10:11 10:25:14.627 IST org.opendaylight.controller.logging.bridge.internal.LogListenerImpl@190c63b2错误o。Bundle:org.opendaylight.controller.samples.ssr消息:FrameworkEvent错误Exception:org.osgi.framework.BundleException:包"org.opendaylight.controller.samples.ssr_0.4.0.SNAPSHOT 36“无法解决。原因:缺少约束:导入包: com.jcraft.jsch;version="0.0.0“
我进口了那个包裹。包org.opendaylight.controller.samples.ssr是我在里面添加的。基本上,我在样品中修改了其中一个包。问题是,我试图在这个包中的一个类中导入一个jar依赖项com.jcraft.jsch。但是进口这个罐子有一个问题。
这几个星期来,我一直在研究这个问题。请提出任何建议或解决方案。提前谢谢。
发布于 2013-11-13 07:24:25
我在OpenDaylight上也面临着同样的问题。下面是我在一些尝试和错误之后找到的解决方案(如果您认为任何步骤是不必要的,请告诉我):
在您的示例中,Maven依赖项有:组Id为com.jcraft,伪Id为jsch,版本为0.1.31 (例如),以及导入包ias 另外,您的org.opendaylight.controller.samples.ssr.模块是OpenDaylight模块。
在文件distribution/opendaylight/opendaylight-osgi-launcher.launch和distribution/opendaylight/opendaylight-osgi-launcher-local.launch,中,将依赖项和模块添加到以下标记:
...
<stringAttribute key="target_bundles" value="com.jcraft.jsch@default:default,ch.qos.logback.classic@default:default, ch.qos.logback.core@default:default ..."/>
.
.
<stringAttribute key="workspace_bundles" value="org.opendaylight.controller.samples.ssr@default:default,org.opendaylight.controller.arphandler@default:default, ..."/>
...在文件distribution/opendaylight/opendaylight.target,中添加一个单元条目,
...
<unit id="com.google.gson" version="2.1.0"/>
<unit id="com.jcraft.jsch" version="0.1.31"/>
...在distribution/p2site/pom.xml,中,将工件条目添加为
...
<artifact>
<id>com.google.code.gson:gson:2.1</id>
<transitive>false</transitive>
<override>false</override>
</artifact>
<artifact>
<id>com.jcraft:jsch:0.1.31</id>
<transitive>false</transitive>
<override>false</override>
</artifact>
...在commons/opendaylight/pom.xml,中,将依赖项添加为
...
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.31</version>
</dependency>
...完成完整的OpenDaylight maven构建并运行。它应该能正常工作。如果该依赖关系进一步链接了依赖项,您可能会再次得到错误。以同样的方式导入这些依赖项。
https://stackoverflow.com/questions/19295583
复制相似问题