2015-09-08 3 views
0

У меня есть неудовлетворенный компонент OSGi и ханжество совсем понимаю, почему это такНеудовлетворенный OSGI компонент

Мое определение услуг выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" 
    immediate="true" enabled="true" name="MyService"> 
    <implementation class="com.example.MyService" /> 
    <reference name="HttpService" interface="org.osgi.service.http.HttpService" 
     cardinality="1..1" policy="dynamic" bind="setHttpService" unbind="unsetHttpService" /> 
    <service> 
     <provide interface="com.example.MyService" /> 
    </service> 
</scr:component> 

и в моей OSGI консоли я вижу:

osgi> comp 7 
    Component[ 
    name = MyService 
    activate = activate 
    deactivate = deactivate 
    modified = 
    configuration-policy = optional 
    factory = null 
    autoenable = true 
    immediate = true 
    implementation = com.example.MyService 
    state = Unsatisfied 
    properties = 
    serviceFactory = false 
    serviceInterface = [com.example.MyService] 
    references = { 
     Reference[name = HttpService, interface = org.osgi.service.http.HttpService, policy = dynamic, cardinality = 1..1, target = null, bind = setHttpService, unbind = unsetHttpService] 
    } 
    located in bundle = com.example.MyService_1.00.0 
] 
Dynamic information : 
    *The component is NOT satisfied 
    The following references are not satisfied: 
    Reference[name = HttpService, interface = org.osgi.service.http.HttpService, policy = dynamic, cardinality = 1..1, target = null, bind = setHttpService, unbind = unsetHttpService] 
    Component configurations : 
    Configuration properties: 
     component.name = MyService 
     component.id = 5 
     objectClass = String[com.example.MyService] 
    Instances: 

osgi> 

Что это значит и как я могу это исправить?

ответ

-1

У вас есть «com.example.MyService», определяемый как ваш класс реализации, так и интерфейс.

+0

Ничего общего с проблемой. –

0

Есть ли зарегистрированная услуга org.osgi.service.http.HttpService?

1

Ваш компонент имеет обязательную ссылку на услугу org.osgi.service.http.HttpService. По-видимому, в реестре службы отсутствует HttpService. Поэтому ваш компонент не удовлетворен.

Это можно устранить, установив реализацию HttpService, например org.apache.felix.http.jetty. Доступна документация here.

Смежные вопросы