2012-07-09 71 views
3

我剛剛從Equinox遷移到Apache Felix。現在有根據javax.sql.DataSource類缺失:Apache Felix未命中javax.sql.Datasource

清單文件
java.lang.NoClassDefFoundError: javax/sql/DataSource 

我的包是進口javax.sql中,我嘗試添加以下行到菲利克斯配置:

org.osgi.framework.system.packages.extra=javax.sql 

有沒有什麼方法可以教felix導出包,還是有捆綁包嗎?即使沒有清單中的import語句,它在Equinox中也能正常工作。

編輯: 清單文件:

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: Database 
Bundle-SymbolicName: ...database 
Bundle-Version: 1.0.0 
Import-Package: javax.sql, 
org.osgi.framework;version="1.3.0", 
org.osgi.service.component;version="1.1.0" 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
Bundle-ClassPath: lib/mysql-connector-java-5.1.20-bin.jar, 
. 
Export-Package: ...database.model, 
...database.service 
Service-Component: OSGI-INF/component.xml 

感謝, 丹尼爾

回答

3

菲利克斯也已經導出此包。

更可能是您的Import-Package聲明可能有問題。您確實聲明您的包導入了包,但請張貼MANIFEST.MF的副本以確保。

+0

我把清單文件放在問題中。 – dbrettschneider 2012-07-09 11:25:50

+0

那麼*看起來很好。這個異常是否可能被這個不同的bundle引發?你看,如果Felix沒有導出包(如你原來的問題所建議的那樣),那麼你會得到一種不同的錯誤,即解決錯誤。你永遠不應該在OSGi中得到NoClassDefFoundError。 – 2012-07-09 11:32:37

+0

原來,我不得不在我的包中導入javax.sql和javax.naming。 – dbrettschneider 2012-07-09 11:35:53

相關問題