2012-02-05 99 views
1

我想開發可以調用Java本地接口的OSGi包。我有幾個問題:OSGi和Java本地接口

  1. 是否有可能開發OSGi包並放置它C包裝類和JNI?是否已經開發了可以使用的例子?

  2. 是它放置在OSGi包調用放置到託管bean的Java方法可能的Java方法?

最良好的祝願

附:還有一個問題:我怎樣才能使一個簡單的託管bean進入EJB?

+1

是,兩者都是可能的。我已經爲Apache Karaf做了這個,但我懷疑你正在使用不同的容器。你正在使用哪個容器? – 2012-02-05 15:50:34

+0

Apache Felix。我使用Netbeans。 – 2012-02-05 15:52:30

+2

我以爲Netbeans是一個IDE,而不是應用程序服務器。你正在創建一個Netbeans插件嗎? – 2012-02-05 15:54:43

回答

1

你可以做到這一點很容易,而在跨平臺的非常便攜的方式,通過在捆綁軟件清單中Bundle-NativeCode頭。

例如:

Bundle-NativeCode: lib/mylib1.dll ; lib/mylib2.dll ; 
    osname=Win32 ; 
    processor=x86, 
    lib/libmylib1.so ; lib/libmylib2.so ; 
    osname=linux; 
    processor=x86 

將加載

  • LIB/mylib1.dll和lib/mylib2.dll(從裏面束)如果OS是Win32和處理器類型是86

  • 的lib/libmylib1.so和lib/libmylib2.so如果操作系統是Linux和處理器類型爲86

這種方法的好處是,你可以包括基於架構的各種不同的本地庫,和OSGi運行時會自動選擇正確的設置當前platofmr時,例如,呼叫System.loadLibrary("mylib1");

這裏是一個老博客的題目是http://robertvarttinen.blogspot.co.uk/2008/12/bundle-nativecode-in-osgi-manifest.html