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
感謝, 丹尼爾
我把清單文件放在問題中。 – dbrettschneider 2012-07-09 11:25:50
那麼*看起來很好。這個異常是否可能被這個不同的bundle引發?你看,如果Felix沒有導出包(如你原來的問題所建議的那樣),那麼你會得到一種不同的錯誤,即解決錯誤。你永遠不應該在OSGi中得到NoClassDefFoundError。 – 2012-07-09 11:32:37
原來,我不得不在我的包中導入javax.sql和javax.naming。 – dbrettschneider 2012-07-09 11:35:53