2013-04-17 163 views
1

我有我的運行簽署Web小型應用程序有些麻煩,java.security.AccessControlException:訪問被拒絕(「java.util.PropertyPermission」「jna.boot.library.path」「讀」)

它運行良好在Eclipse中,但只要我上傳到網頁,我得到這個錯誤日誌:

Exception in thread "AWT-EventQueue-2" java.lang.ExceptionInInitializerError 
at com.dermalog.imaging.capturing.cwrap.vc.DermalogvcLibrary.<clinit>(DermalogvcLibrary.java:30) 
at com.dermalog.imaging.capturing.DeviceManager.<clinit>(DeviceManager.java:33) 
at MyPackage.Bio.GetDevice(Bio.java:218) 
at MyPackage.Bio.StartDevice(Bio.java:150) 
at MyPackage.Bio.access$0(Bio.java:144) 
at MyPackage.Bio$1.run(Bio.java:80) 
at java.security.AccessController.doPrivileged(Native Method) 
at MyPackage.Bio.<init>(Bio.java:76) 
at MyPackage.Test$2.actionPerformed(Test.java:45) 
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
at java.awt.Component.processMouseEvent(Unknown Source) 
at javax.swing.JComponent.processMouseEvent(Unknown Source) 
at java.awt.Component.processEvent(Unknown Source) 
at java.awt.Container.processEvent(Unknown Source) 
at java.awt.Component.dispatchEventImpl(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
at java.awt.Container.dispatchEventImpl(Unknown Source) 
at java.awt.Component.dispatchEvent(Unknown Source) 
at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
at java.awt.EventQueue.access$200(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.awt.EventQueue$3.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.awt.EventQueue$4.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) 
at java.awt.EventQueue.dispatchEvent(Unknown Source) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: java.security.AccessControlException: access denied("java.util.PropertyPermission" "jna.boot.library.path" "read") 
at java.security.AccessControlContext.checkPermission(Unknown Source) 
at java.security.AccessController.checkPermission(Unknown Source) 
at java.lang.SecurityManager.checkPermission(Unknown Source) 
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source) 
at java.lang.System.getProperty(Unknown Source) 
at com.sun.jna.Native.loadNativeLibrary(Native.java:650) 
at com.sun.jna.Native.<clinit>(Native.java:109) 
... 44 more 

我相信這是打破沙箱中,並與計算機進行通信的問題。

可以使用AccessController.doPrivileged解決問題?除修改策略文件外,我還有哪些選擇?

+0

*「可以使用AccessController.doPrivileged解決問題嗎?」*可能,但只有它是一個可信的applet,其方法從JS調用。否則,只要用戶確定信任提示,就應該信任它。 –

回答

1

事實證明,我遇到的問題是我的引用Jar文件(主Jar外部)沒有簽名,簽名後問題就消失了。

相關問題