getting java.lang.InvocationTargetException in Applet when call native apis
Krr1shOct 28 2010 — edited Nov 1 2010Hello All,
I am trying to read a USB device using the Applet embedded in jsp using JNA api.
In my code I am loading the DLLs as follows (this works fine standalone class without applet):
Hid INSTANCE = (Hid)Native.loadLibrary("hid", Hid.class, UNICODE_OPTIONS);
Setupapi INSTANCE = (Setupapi)Native.loadLibrary("setupapi", Setupapi.class, UNICODE_OPTIONS);
INSTANCE = (MyKernel32)Native.loadLibrary("kernel32", MyKernel32.class, UNICODE_OPTIONS);
when I put the above code in unsigned Applet and give permissions in java.policy as follows:
permission java.lang.RuntimePermission "loadLibrary.hid";
permission java.io.FilePermission "${java.home}${/}lib${/}ext${/}x86${/}hid.dll", "read, write";
permission java.util.PropertyPermission "Hid", "read, write";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "loadLibrary.hid";
permission java.io.FilePermission "${java.home}${/}lib${/}ext${/}x86${/}setupapi.dll", "read, write";
permission java.util.PropertyPermission "Setupapi", "read, write";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "loadLibrary.kernel32";
permission java.io.FilePermission "${java.home}${/}lib${/}ext${/}x86${/}kernel32.dll", "read, write";
permission java.util.PropertyPermission "MyKernel32", "read, write";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "modifyThread";
and I have ported jars(examples.jar, jna.jar) in C:\Program Files\Java\jre6\lib\ext and DLLs(hid.dll, kernel32.dll, setupapi.dll) in C:\Program Files\Java\jre6\lib\ext\x86.
I am getting an exception:
java.lang.InvocationTargetException.
Please tell me if I am missing anything..
Thanks
Saikrishna