1

我创建了一个 jar 文件来加载本机库(使用 System.loadlibrary())并将其配置为 WebSphere(v6.1)中的共享库。服务器必须在启用 Java 2 的情况下运行(这是法律……)

当我尝试访问该库时,我可以看到正在从我的 jar 文件中加载正确的类,但是尝试加载本机库时会出现以下安全异常:-

允许:

      loadLibrary.gbif : 拒绝访问 (java.lang.RuntimePermission loadLibrary.gbif)


代码:

     com.dave.nativelibrary.NativeLibraryLoader 在 {file:/hosting/apps/D03-dave-dev/lib/NativeLibraryLoader.jar}



堆栈跟踪:

java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission loadLibrary.gbif)
    在 java.security.AccessController.checkPermission(AccessController.java:104)
    在 java.lang.SecurityManager.checkPermission(SecurityManager.java:547)
    在 com.ibm.ws.security.core.SecurityManager.checkPermission(SecurityManager.java:189)
    在 java.lang.SecurityManager.checkLink(SecurityManager.java:833)
    在 java.lang.ClassLoader.loadLibraryWithClassLoader(ClassLoader.java:917)
    在 java.lang.System.loadLibrary(System.java:453)
    在 com.dave.nativelibrary.NativeLibraryLoader.(NativeLibraryLoader.java:21)

--- 剪断 ---

我不太确定自己在做什么——所以我尝试了几次将以下内容放入我的 was.policy 文件中

权限 java.lang.RuntimePermission "loadLibrary.gbif";

我在应用程序和 jars 部分都尝试过,但没有任何有益效果。

任何人都可以阐明我需要在这里做什么吗?

谢谢

戴夫

4

1 回答 1

0

而不是将您的本机库包装在 jar 库中。您是否尝试过将本机代码定义为 websphere 内的共享本机库?

于 2009-03-19T10:55:44.503 回答