2016-02-22 48 views
0

我試圖在GlassFish中4.1.1部署一個簡單的OSGi包(你好世界),但我得到了以下錯誤:如何修復丟失的要求,同時OSGi包部署

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) 

我不t知道如何修復丟失的軟件包,我已經將「com.mycompany.mavenhelloserviceapi」定義爲軟件包MavenHelloServiceImpl中的依賴項,並且它存在於軟件包中的依賴項文件夾中MavenHelloServiceImpl 任何想法如何解決此錯誤?

回答

1

com.mycompany.mavenhelloserviceapi作爲pom.xml中的依賴項是不夠的:pom是關於編譯時依賴性的。你在這裏看到一個關於缺少運行時依賴的問題。

您應該在您的容器中安裝com.mycompany.mavenhelloserviceapi

+0

thx由於您的建議,我解決了這個問題;) – foucha

0

您應該將包含com.mycompany.mavenhelloserviceapi的項目修改爲捆綁項目並明確導出此包。現在將此捆綁包與您的Hello World捆綁包一起部署。

或者,您可以使用Pax Wrap將包含com.mycompany.mavenhelloserviceapi的jar部署到glassfish中,而無需修改項目。