部署到 WebLogic 的 Web 应用程序调用 SomeProxy.class 中的本机方法。这个 SomeProxy.class 被部署为共享库。它有一个静态块来加载本机库。
public class SomeProxy {
static {
System.load("/path/to/jnilib");
setup();
}
public static native void setup();
public native int solve();
}
Web 应用程序中的客户端类具有以下代码来调用 SomeProxy.class。
public class SomeClient {
void use() {
SomeProxy proxy = new SomeProxy();
int result = proxy.solve();
}
}
Web 应用程序的第一次部署成功运行。然后该 Web 应用程序被停止、删除并重新安装。本机方法的调用失败,并给出以下错误消息。
java.lang.UnsatisfiedLinkError: package/name/SomeProxy.setup()V
at package.name.SomeProxy.<clinit>(SomeProxy.java:19)
at package.name.SomeClient.use(SomeClient.java:112)