2012-10-24 20 views
0

我有一個使用Spring並運行在Glassfish 3.1.2中的Java Web應用程序,我試圖將其轉換爲OSGi體系結構。將雙子星藍圖部署到Glassfish中的Felix

我開始通過下載雙子座藍圖和複製的罐子到autodeploy/bundle目錄Glassfish的在這一點,我收到關於失蹤的要求很多誤區,比如:

[#|2012-10-24T12:58:07.176 0500|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_Thread 
ID=18;_ThreadName=Thread-5;|org.osgi.framework.BundleException: 
Unresolved constraint in bundle org.eclipse.gemini.blueprint.core [258]: 
Unable to resolve 258.1: missing requirement [258.1] osgi.wiring.package; (&(osgi.wiring.package=org.aopalliance.aop)(version>=0.0.0)) 

與同類誤差修改爲org.apache.commons.logging除其他。

我一直在閱讀關於OSGi和Glassfish的很多內容,但我無法找到爲Glassfish創建OSGi Spring應用程序的任何示例,所以我猜測我可能做了一些非常錯誤的事情。

任何人有任何想法,無論我做的是正確的,如果是的話如何解決這些問題。

+0

只是要清楚,你是否試圖在glassfish中運行osgi容器,或者你試圖在osgi容器中運行glassfish? – Wins

+0

@wins對於當前的Web應用程序,我運行glassfish 3.1,我的理解是在OSGi容器中運行,我試圖將當前Web應用程序的Jars轉換爲與Glassfish捆綁運行,方法是部署到Felix(將jar複製到自動完成) 。我沒有在Glassfish中安裝任何東西。 – zode64

+0

在這種情況下,根據錯誤消息,似乎您的Gemini包需要尚未在容器中提供的包。您需要弄清楚從其他軟件包導入的軟件包/類是什麼,並在部署Gemini之前安裝並啓動它們。 您可以通過檢查雙子星包的清單來做到這一點 – Wins

回答

1

看來你試圖在玻璃魚內運行osgi容器。如果是這樣,你必須使用或寫一種將啓動osgi容器的osgi引導程序。它應該使用必需的捆綁包來啓動osgi容器,該捆綁包是osgi容器的最小設置,以便爲下一個捆綁包進行部署。

更新回答: 根據錯誤信息,看起來你的雙子星包需要在容器中尚不可用的包。您需要弄清楚從其他軟件包導入的軟件包/類是什麼,並在部署Gemini之前安裝並啓動它們。你可以通過檢查雙子星包的清單來做到這一點

+0

我想要做的就是儘可能簡單地使用OSGi在Glassfish中運行Spring。我認爲雙子藍圖提供了「綁定」來允許Spring像這樣工作,這就是我將其部署到Glassfish的原因。我的方法應該是什麼? – zode64

+0

請在問題區域查看我的評論。我在寫這個答案時想念你的問題。我會刪除這個答案 – Wins

+0

只需更新您在問題區域中提出的問題所提供的答案 – zode64