1

JavaNativeInterfaceを呼び出すことができるOSGiバンドルを開発したいと思います。少し質問があります:

  1. OSGiバンドルを開発し、その中にCラッパークラスとJNIを配置することは可能ですか?私が使用できる開発済みの例はありますか?

  2. OSGiバンドルに配置されたJavaメソッドが、マネージドBeanに配置されたJavaメソッドを呼び出すことは可能ですか?

幸運をお祈りしています

PSもう1つの質問:1つの単純なマネージドBeanをEJBにするにはどうすればよいですか?

4

1 に答える 1

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

ロードします

  • OSがWin32で、プロセッサタイプがx86の場合、lib/mylib1.dllおよびlib/mylib2.dll(バンドル内から)

また

  • OSがLinuxで、プロセッサタイプがx86の場合、lib/libmylib1.soおよびlib/libmylib2.so

このアプローチの利点は、アーキテクチャに基づいてさまざまなネイティブライブラリを含めることができることです。たとえば、OSGiランタイムは、たとえば、System.loadLibrary("mylib1");

このトピックに関する古いブログは次のとおりです。http://robertvarttinen.blogspot.co.uk/2008/12/bundle-nativecode-in-osgi-manifest.html

于 2015-04-25T23:17:24.823 に答える