2012-03-19 3 views
8

API를 사용해야하는 작은 API 번들 및 서비스 번들을 만들었습니다.가져 오기를 확인할 수 없기 때문에 캔트 시작 osgi 번들

<dependency> 
    <groupId>at.foobar.osgi.api</groupId> 
    <artifactId>foobarapi</artifactId> 
    <version>1.0</version> 
</dependency> 

내가 번들을 만들 수 받는다는 - 번들 플러그인을 사용하고, 때문에 내 받는다는 pom.xml 파일에서

, 나는이 같은 올바른 버전에서 내 API를 번들에 대한 실행 종속 추가 그 중 mvn clean install을 jar 파일로 작성했습니다. 매니페스트이 (서비스)과 같다 : 나를 위해 OK 것으로 보인다

Manifest-Version: 1.0 
Private-Package: at.foobar.osgi.producer 
Built-By: foobar 
Tool: Bnd-0.0.238 
Bundle-Name: foobarproducer 
Created-By: Apache Maven Bundle Plugin 
Bundle-Version: 1.0 
Build-Jdk: 1.6.0_26 
Bnd-LastModified: 1332185439257 
Bundle-ManifestVersion: 2 
Bundle-Activator: at.foobar.osgi.producer.Activator 
Import-Package: at.foobar.osgi.api,org.osgi.framework;version="1.4" 
Bundle-SymbolicName: at.foobar.osgi.producer.foobarproducer 

. 가져 오기가 거기에 있으므로 모든 것이 잘되어야합니다.

이제 나는 춘분을 시작하고 API와 제작자 번들을 설치했습니다. 그런 다음 API를 시작하고 정상적으로 작동합니다.

org.osgi.framework.BundleException: The bundle "at.foobar.osgi.producer.foobarproducer_1.0.0 [4]" could not be resolved. Reason: Missing Constraint: Import-Package: at.foobar.osgi.api; version="0.0.0" 

프레임 워크 API를 찾을 수없는 것 같다, 그러나 그것의 설치 및 시작 : 내가 생산자 서비스를 시작 할 때하지만 난이 오류가?

+0

는 해당 패키지를 확인하기 위해 춘분 콘솔과 실행 '패키지 at.foobar.osgi.api을'해고 적이 API 번들에서 내 보냈습니까? 커다란 스크롤 목록이 있다면 그 패키지를 번들로 내보낼 수 없다는 뜻입니다. 또한 번들 [api-bundle-name]을 사용하여 API 번들이 어떤 패키지를 내보낼 지 확인하고 그 자체가 시작되었는지 확인합니다. –

+0

mh API를 내보내는 것을 잊어 버렸습니다 ...하지만 왜 내가 그것을 내 보내야하는지 이해하지 못합니까? 핵심 사양을 읽고 osgi에서 해결했기 때문에 API 패키지를 내 보내서는 안됩니다. – reox

+2

패키지는 번들에 의해 내보내거나 번들에 포함되어야합니다 (예 : ir private-package). 따라서 Bnd는이를 가져온 패키지로 인식합니다. 아마도 다른 번들에서 사용하려고하는 API처럼 들릴 수 있기 때문에 내보내기가 정확할 수도 있습니다. –

답변

6

서비스 번들을 바인딩 할 수 있도록 API 패키지를 내보내고 있는지 확인하십시오. 당신이 뭔가를 가지고 있어야 API 번들에 대한 받는다는 - 번들 - 플러그인에서

는 :

  <configuration> 
       <instructions> 
        <Import-Package> 
         * 
        </Import-Package> 
        <Export-Package> 
         at.foobar.osgi.api.* 
        </Export-Package> 
       </instructions> 
      </configuration> 
+4

당신은 방금 알콜 중독자가되는 것을 저축했습니다. 정말 대단히 감사합니다! – Chris