2013-10-22 34 views
0

我是卡拉夫的新手。我有一個jar包,它有一個帶有方法main的類App。當我將該jar放入The Karaf日誌服務控制檯時,表示該軟件包已啓動,但似乎沒有任何事情發生。第一件事(jar)是一個簡單的數據庫寫入,所以我可以看到它是否正在運行(儘管預計會產生日誌文件,但不會生成日誌文件)。Apache卡拉夫 - 捆綁開始但沒有做什麼?

罐子依賴於很多其他罐子。我們的系統管理員不會在生產服務器上安裝Maven。在哪裏放置助手罐(如mysql-connector-java- [version] .jar)?

卡拉夫是否使用Manifest文件來查找主類?我是否必須實現一些特殊的界面或什麼?

感謝您的任何幫助。

回答

2

由於Karaf是一個OSGi容器,你應該先閱讀一些關於如何編寫合適的OSGi包的東西。 首先你需要一個啓動你的包的Activator(就像一個主)。主類不會被解釋。是的Karaf,因爲它是一個OSGi容器,它讀取Manifest,但首先要確保它是一個合適的OSGi bundle,然後通過閱讀Package-Import/-Export來解決問題。

關於「包裝」 - 使用其他jar/bunldes的批次,您可以構建一個自定義Karaf(請閱讀關於如何做到這一點的Karaf文檔),或者爲您的Bundles創建一個KAR,一個feature.xml(再次看看在卡拉夫文檔)

+0

謝謝,具有正確的關鍵字('OSGi捆綁','激活')谷歌是非常有益的。原來,Netbeans甚至有一個項目類型的OSGi包,所以我關閉並運行。 – Gerry