部署到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)