我试图向现有的osgi框架(www.ogema.org)中添加一个模块。我必须使用依赖于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添加为依赖项?
发布于 2013-10-27 09:22:44
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发布于 2013-10-26 06:58:48
它已经作为依赖项添加了,所以这很好。问题是,在OSGi框架中没有导出javax.smartcardio包的包。对于包中的每个导入包,必须从另一个包导出相应的包。
我不熟悉Smartcard API,所以我无法提供如何找到导出它的包的建议。如果它可以作为普通JAR文件使用,那么您可能需要将它“包装”为一个OSGi包。
https://stackoverflow.com/questions/19598278
复制相似问题