2013-10-25 122 views
1

我試圖添加一個模塊到現有的osgi框架(www.ogema.org)。 我必須使用依賴於javax.smartcardio的庫。我將庫添加到本地存儲庫,似乎工作。 但是,當我要開始使用該庫的包我得到的錯誤:如何在使用maven構建時在osgi包中導入javax.smartcardio?

The bundle "org.ogema.examples.securitymodule-app_1.1.1 [12]" could not be resolved. Reason: Missing Constraint: Import-Package: javax.smartcardio; version="0.0.0" 

我如何添加javax.smartcardio的依賴?

回答

1

javax.smartcardio是JRE的一部分(至少在6,不知道它是否已經在5,規範JSR 268是從2006年,所以它可能已在J5)。

這很可能是你的框架不導出這個包。您可以通過將org.osgi.framework.system.packages.extra框架屬性設置爲javax.smartcardio;version=1.0.0;jsr=268(JSR或版本是可選的,但它是很好的文檔)從框架導出此包。

在bndtools你可以這樣做:

-runsystempackages: \ 
    javax.smartcardio;version=1.0.0;jsr=268 
1

它已經被添加爲依賴項,所以沒關係。問題是你沒有在OSGi框架中包含包的出口包的javax.smartcardio包。對於包中的每個導入包,必須從另一個包中導出該包。

我對智能卡API不熟悉,所以我無法提供關於如何找到導出它的軟件包的建議。如果它可以作爲純JAR文件提供,那麼您可能需要將其「包裝」爲OSGi包。

相關問題