2017-07-26 36 views
0

我想通過java來做像deploy/Active/Unistall maven bundle的操作。我如何在Java應用程序中做到這一點? 有什麼幫助嗎?java中的Karaf命令執行

+0

您可能從下面的帖子中獲得靈感:https://stackoverflow.com/questions/36010963/how-to-call-karaf-console-command-in-java – gusto2

+0

@ gusto2上面的mension鏈接不適用於我 – NSF

+0

從鏈接文章引用:所有shell命令都使用底層osgi服務....您可以使用BundleContext.installBundle安裝Bundle或通過FeaturesService安裝功能 – gusto2

回答

0

幾乎每個karaf組件公開是通過OSGi服務和JMX MBean的內部組件,所以有幾種方法可以達到你想要的東西,如:

  1. 創建捆綁使用藍圖引用Karaf OSGi服務,聲明式服務或Spring;例如,如果要通過捆綁軟件控制捆綁軟件安裝/更新/刷新,您將引用BundleContext和BundleService接口。
  2. 在你的karaf中安裝Jolokia和Hawtio,它將在REST服務下公開幾個控制包,實例和功能等的JMX MBeans。有了這個,你可以創建一個消耗這些服務的Java應用程序。有關可用Mbeans的列表,請參閱Karaf Documentation
  3. 如上所述,創建一個通過JMX連接到karaf並使用JMX MBean的Java應用程序。

這取決於你選擇哪個解決方案解決你的問題。