1

我想开发可以调用 Java Native 接口的 OSGi 包。我有几个问题:

  1. 是否可以开发 OSGi 包并将 C 包装类和 JNI 放入其中?是否已经开发了我可以使用的示例?

  2. 是否有可能放置在 OSGi 包中的 java 方法调用放置在托管 bean 中的 java 方法?

最好的祝愿

PS 还有一个问题:如何将一个简单的托管 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

将加载

  • 如果操作系统为 Win32 且处理器类型为 x86,则lib/mylib1.dll 和 lib/mylib2.dll(来自捆绑包内部)

或者

  • lib/libmylib1.so 和 lib/libmylib2.so 如果操作系统是 Linux 并且处理器类型是 x86

这种方法的美妙之处在于您可以根据架构包含各种不同的本地库,并且当您调用时,OSGi 运行时会自动为当前 platofmr 选择正确的集合System.loadLibrary("mylib1");

这是关于该主题的旧博客:http ://robertvarttinen.blogspot.co.uk/2008/12/bundle-nativecode-in-osgi-manifest.html

于 2015-04-25T23:17:24.823 回答