The UnsatisfiedLinkError occurs when the JVM cannot find a native language definition of a method that was declared native in a
Java class. The problem is usually fixed by making sure that the shared library or DLL is in the PATH of the JVM. Things don't just start breaking. If it worked at one time then something or someone has changed either a path of a library file and the JVM is no longer able to load everything required to run properly. I struggled with a similar problem using IBM's Websphere Application Server when I had a
servlet that was attempting to use a JNI class. I finally wrapped the JNI class with RMI and made a server out of it. Sometimes the problems are with the tools we use or misuse of the tools we use. I never did go back and figure out what the actual problem was. Due to time constraints I decided to move on the alternative architecture despite the probable degredation to performance.
I'd recommend turning on verbose mode and trying to identify exactly which class or library is failing to load and then double check that the native file is in the PATH (not CLASSPATH) of the JVM.
Good Luck.