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可能有所帮助