我创建了一个.jar文件,其中包含我的类以及从多个Apache Tomcat jar中提取的类。然后我签署了jar并使用<security><all-permissions/>
创建了一个JNLP文件。
但是在运行我的应用程序时,WebStart拒绝从我的jar访问类:
java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.org.apache.catalina.deploy)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:393)
at java.security.AccessController.checkPermission(AccessController.java:553)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1529)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:291)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at net.sourceforge.jnlp.runtime.JNLPClassLoader.loadClass(JNLPClassLoader.java:1018)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2444)
at java.lang.Class.getMethod0(Class.java:2687)
at java.lang.Class.getMethod(Class.java:1620)
at org.apache.catalina.startup.SetPublicIdRule.begin(WebRuleSet.java:639)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
... 33 more
这是WebStart中的错误还是为什么会出现此安全异常?
答案 0 :(得分:1)
尝试通过调用以下方式清除安全管理器:
System.setSecurityManager(null);
我在Java Web Start应用程序中使用它来获得完全控制但是应用程序需要签名并具有
<security>
<all-permissions/>
</security>
正如你所说的那样。