bundle中未解决的约束,缺少要求osgi.wiring.package
我正在使用OSGi-(felix),SpringDM,hibernate,maven的项目。 当我安装bundle时,没关系,我运行bundle id时的输出是:
LastModified 1384619994484 Headers [Manifest-Version=1.0, Bundle-Vendor=NguyenVinhLinh, Bnd-LastModified=1384619954778, Tool=Bnd-2.1.0.20130426-122213, Bundle-Name=DrugManager, Built-By=nguyenvinhlinh, Import-Package=org.hibernate,org.hibernate.classic,org.hibernate.criterion,org.springframework.beans.factory;version="[2.5,3)",org.springframework.core.io;version="[2.5,3)",org.springframework.transaction.annotation;version="[2.5,3)", Bundle-SymbolicName=DrugManagerDAO, Export-Package=drug,drugGroup,model;version="1.0.0", Bundle-Version=1.0.0, Build-Jdk=1.7.0_45, Created-By=Apache Maven Bundle Plugin, Bundle-ManifestVersion=2] BundleContext null Revisions [169.0] BundleId 169 SymbolicName DrugManagerDAO RegisteredServices null ServicesInUse null Version 1.0.0 Location file:/home/nguyenvinhlinh/Projects/felix-framework-4.2.1/bundle/DrugManager-1.0.jar State 2 Bundle 169|Installed | 1|DrugManagerDAO (1.0.0)
这就是我看到的,当我开始这个包时:
org.osgi.framework.BundleException: Unresolved constraint in bundle DrugManagerDAO [169]: Unable to resolve 169.0: missing requirement [169.0] osgi.wiring.package; (osgi.wiring.package=org.hibernate)
这是我的beans.xml:
这是我的pom文件:
4.0.0 DrugManager DrugManager 1.0 bundle org.osgi org.osgi.core 4.3.0 hsqldb hsqldb 1.8.0.10 org.springframework spring 2.5.6 commons-dbcp commons-dbcp 20030825.184428 commons-pool commons-pool 20030825.183949 org.hibernate hibernate 3.2.6.ga mysql mysql-connector-java 5.1.27 org.apache.maven.plugins maven-compiler-plugin 2.0.2 1.6 1.6 org.apache.felix maven-bundle-plugin 2.4.0 true DrugManagerDAO NguyenVinhLinh "drug,drugGroup,model" org.hibernate java.net http://download.java.net/maven/2/
另外,felix中有一个完整的bundle错误。
g! ERROR: Bundle DrugManagerDAO [190] Error starting file:DrugManager-1.0.jar (org.osgi.framework.BundleException: Unresolved constraint in bundle DrugManagerDAO [190]: Unable to resolve 190.0: missing requirement [190.0] osgi.wiring.package; (osgi.wiring.package=org.hibernate)) org.osgi.framework.BundleException: Unresolved constraint in bundle DrugManagerDAO [190]: Unable to resolve 190.0: missing requirement [190.0] osgi.wiring.package; (osgi.wiring.package=org.hibernate) at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974) at org.apache.felix.framework.Felix.startBundle(Felix.java:2037) at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1291) at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:304) at java.lang.Thread.run(Thread.java:744)
您是否也在容器(Felix)中安装了此捆绑包?
org.hibernate hibernate 3.2.6.ga
如果没有安装它,然后看看当你启动捆绑包时会发生什么。
对于缺少需求[Bundle-number] osgi.wiring.package,我在pom.xml中将其添加为export-package,如下所述:
package for which error is thrown
它工作。 因此,如果它甚至在将其声明为依赖项后抛出上述错误,则export-package可能有所帮助