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