簡體   English   中英

缺少 OpenDaylight 控制器應用程序的依賴項 (Sodium SR1)

[英]Missing Dependency for OpenDaylight controller app (Sodium SR1)

我正在按照此處的說明編寫一個簡單的 hello world RPC: https : //docs.opendaylight.org/en/stable-sodium/developer-guide/developing-apps-on-the-opendaylight-controller.html

在示例 HelloProvider 類中,構造函數是:

 public HelloProvider(final DataBroker dataBroker, final RpcProviderService rpcProviderService) {
     this.dataBroker = dataBroker;
     this.rpcProviderService = rpcProviderService;
 }

這需要 RpcProviderService,因此編譯失敗。 所以我添加到 impl/src/main/resources/OSGI-INF/blueprint/impl-blueprint.xml:

      <reference id="rpcProviderService"
         interface="org.opendaylight.mdsal.binding.api.RpcProviderService"/>
         odl:type="default" />

這導致項目編譯,但在測試階段失敗:

Missing dependencies: 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService) 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMDataBroker) 
(objectClass=org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry) 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMMountPointService) 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMRpcService) 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMNotificationService) 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMDataBroker) 
(objectClass=org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService) 

org.opendaylight.controller 包已經被拉進來,所以也許我錯過了別的東西。 有什么建議嗎?

我也面臨同樣的問題。 我修改了 impl-blueprint.xml 如下:

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
   xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0"
   odl:use-default-for-reference-types="true">

<reference id="dataBroker"
  interface="org.opendaylight.mdsal.binding.api.DataBroker"
  odl:type="default" />

<reference id="rpcProviderService"
         interface="org.opendaylight.mdsal.binding.api.RpcProviderService"
         odl:type="default" />

<bean id="provider"
  class="org.opendaylight.hello.impl.HelloProvider"
  init-method="init" destroy-method="close">
  <argument ref="dataBroker" />
  <argument ref="rpcProviderService" />
</bean>

在此之后,我在通過 HTTP 方法訪問 REST API 時遇到了另一個問題。 我收到錯誤 401 - 未經授權。 為此,我安裝了 odl-mdsal-apidocs 並開始工作。

<dependency>
  <groupId>org.opendaylight.netconf</groupId>
  <artifactId>odl-mdsal-apidocs</artifactId>
  <version>1.10.2</version>
  <type>xml</type>
  <classifier>features</classifier>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM