Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

Vinllen Chen


To be a better coder

opendaylight ping模块开发中遇到的问题总结

  最近开始学习opendalight二次开发,从官网的给定的文档以及李呈的文档。不过配置时总有点问题,由于之前没怎么倒腾过java这一套东西,包括osgi, RESTful api, maven等这一套。现总结如下,如果有谁有错误的可以帮助到:

  新手常问的问题就是:为什么我和xxx配置一模一样,我的就不行?好吧,其实我也一样。

  1. 定义yang文件,然后mvn install。此处不会有太大问题,要是mvn报错一般是因为网速不行,有些包download不下来,换个网速快点的就可以了。
  2. 创建bundle实现之前yang文件定义的接口。此处会有较大的问题,在配置pom.xml时,我按文档上给的配置,然后将mvn后生成的包拷到controller的plugin中(该文件存放所有运行的jar包),启动一直报错:
    BundleException: The bundle "org.opendaylight.controller.ping.plugin_0.4.0.SNAPSHOT [98]" could not be resolved. Reason: Missing Constraint: Import-Package: org.opendaylight.controller.sal.binding.api; version="[1.1.0,2.0.0)" 根据这篇报错文档给出的说明:这类错误往往是版本的问题。这里报错提示的版本号最低需要1.1.0。这是因为自己pom.xml定义的该版本。查阅controller plugin文件发现,只存在版本号为1.0-1的。但是~/.m2目录下存在1.1.0版本号。于是我将该版本号对应的包拷贝至controller的plugin目录下,发现还是不行。正确的方式是:修改pom.xml文件中的版本号为1.0-1,然后重新mvn install一下,继续重复以上操作;这时候发现还是有依赖问题,只不过这一次报的是: gogo: BundleException: The bundle "org.opendaylight.controller.ping.plugin_0.4.0.SNAPSHOT [258]" could not be resolved. Reason: Missing Constraint: Import-Package: org.opendaylight.controller.sal.common.util; version="[1.1.0,2.0.0)" 注意下划线部分,于是从~/.m2文件夹中拷贝相应的包到controller的plugin下即可,注意这时候还需要修改pom.xml下的sal.common.util版本号从1.11.0-1。Osgi下ss ping发现对应的包为active,即为可用。Done!利用代码测试,返回成功。
  3. 基本没什么问题,需要注意的就是pom.xml中的版本号需要跟上面一样修改一下。
  4. 键入命令:
    curl --user "admin":"admin" -X PUT http://localhost:8080/controller/nb/v2/ping/127.0.0.1完成ping功能。
  5. 最后一步整合到controller总体编译时,注意作者写的model.ping有误,应该为model-ping。
    Done!

About the author

vinllen chen

Beijing, China

格物致知


Discussions

comments powered by Disqus