我正在尝试在glassfish 4.1.1中部署一个简单的OSGI包(hello world),但是我收到了以下错误:
Infos: org.osgi.framework.BundleException:
Unresolved constraint in bundle com.mycompany.MavenHelloServiceImpl [324]:
Unable to resolve 324.0: missing requirement [324.0]
osgi.wiring.package; (osgi.wiring.package=com.mycompany.mavenhelloserviceapi)
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3974)
我不知道如何修复丢失的包,我已经将“com.mycompany.mavenhelloserviceapi”定义为捆绑MavenHelloServiceImpl中的依赖项,它存在于捆绑包MavenHelloServiceImpl的dependencies文件夹中 知道如何解决这个错误吗?!
答案 0 :(得分:1)
将com.mycompany.mavenhelloserviceapi
作为pom.xml中的依赖项是不够的:pom是关于编译时依赖项的。你在这里看到一个关于缺少运行时依赖性的问题。
您应该在容器中安装com.mycompany.mavenhelloserviceapi
。
答案 1 :(得分:0)
您应该将包含com.mycompany.mavenhelloserviceapi
的项目修改为捆绑项目并显式导出此包。现在将此捆绑包与您的hello world bundle一起部署。
或者,您可以使用Pax Wrap将包含com.mycompany.mavenhelloserviceapi
的jar部署到glassfish而无需修改项目。