Java jnlp应用程序被安全设置阻止
发布时间:2020-12-14 05:49:29 所属栏目:Java 来源:网络整理
导读:我有一个企业级的 Java应用程序,它有大量的jars,通过jnlp文件下载到客户端的jvm缓存中.当我启动应用程序时,我在Java控制台上得到以下堆栈跟踪: Exception in thread "AWT-EventQueue-1" java.lang.NullPointerExceptionat com.sun.deploy.ui.DialogTemplate
我有一个企业级的
Java应用程序,它有大量的jars,通过jnlp文件下载到客户端的jvm缓存中.当我启动应用程序时,我在Java控制台上得到以下堆栈跟踪:
Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException at com.sun.deploy.ui.DialogTemplate.imageAvailable(Unknown Source) at com.sun.deploy.ui.DialogTemplate.finalImageAvailable(Unknown Source) at com.sun.deploy.ui.ImageLoader$2.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(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.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) Exception in thread "AWT-EventQueue-1" java.lang.NullPointerException at com.sun.deploy.ui.DialogTemplate.imageAvailable(Unknown Source) at com.sun.deploy.ui.DialogTemplate.finalImageAvailable(Unknown Source) at com.sun.deploy.ui.ImageLoader$2.run(Unknown Source) at java.awt.event.InvocationEvent.dispatch(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.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) #### Java Web Start Error: #### The Java security settings have prevented this application from running. You may change this behavior in the Java Control Panel. 我的JNLP文件像以下一些审查描述: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="1.0+" codebase="http://10.100.10.9/ikarusdelhitest/" href="ikarus.jnlp"> <information> <title>ikarus</title> <vendor>my company</vendor> <homepage href="http://www.mycompanyaddress.com" /> <description>My enterprise java ee swing application</description> <icon href="ikarus.jpg" /> <offline-allowed /> </information> <security> <all-permissions /> </security> <resources> <jar href="jars/ikarus/ikarusClient.jar" /> <jar href="jars/ikarus/ikarusDelegators.jar" /> <jar href="jars/ikarus/clientRules.jar" /> <jar href="jars/ikarus/ruleImps.jar" /> <jar href="jars/ikarus/ikarusUtil.jar" /> <jar href="jars/ikarus/ikarusResources.jar" /> <jar href="jars/ikarus/domain.jar" /> <jar href="jars/ikarus/domain_repository.jar" /> <jar href="jars/ikarus/domain_service.jar" /> <jar href="jars/ikarus/app_repository.jar" /> <jar href="jars/ikarus/app_service.jar" /> <jar href="jars/ikarus/infrastructure.jar" /> <jar href="jars/ikarus/integration_domain.jar" /> <jar href="jars/jboss_ejb_auth/ejb3-persistence.jar" /> <jar href="jars/jboss_ejb_auth/jboss-ejb3x.jar" /> <jar href="jars/jboss_ejb_auth/jbossall-client.jar" /> <jar href="jars/jasper/commons-beanutils-1.8.0.jar" /> <jar href="jars/jasper/commons-collections-3.2.1.jar" /> <jar href="jars/jasper/commons-digester-1.7.jar" /> <jar href="jars/jasper/commons-logging-1.1.jar" /> <jar href="jars/jasper/iText-2.1.0.jar" /> <jar href="jars/jasper/jasperreports-3.6.0.jar" /> <jar href="jars/jasper/poi-3.2-FINAL-20081019.jar" /> <property name="jnlp.localization" value="Delhi"/> </resources> <application-desc main-class="com.celebi.ikarus.main.Ikarus" /> 还要注意,我在更多的信息面板上获得了一些不同的例外细节: com.sun.deploy.security.BlockedException: The Java security settings have prevented this application from running. You may change this behavior in the Java Control Panel. at com.sun.deploy.security.SandboxSecurity.showBlockedDialog(Unknown Source) at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source) at com.sun.javaws.security.AppPolicy.addPermissions(Unknown Source) at com.sun.jnlp.JNLPClassLoader.getTrustedCodeSources(Unknown Source) at com.sun.deploy.security.CPCallbackHandler$ParentCallback.strategy(Unknown Source) at com.sun.deploy.security.CPCallbackHandler$ParentCallback.openClassPathElement(Unknown Source) at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source) at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source) at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source) at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source) at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source) at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source) at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.SecurityException: Invalid Permissions value: all-permissions at com.sun.deploy.security.DeployManifestChecker.verify(Unknown Source) at com.sun.deploy.security.DeployManifestChecker.verify(Unknown Source) ... 39 more 我对java控制面板的安全性没有任何安全限制.中等水平如下: 感谢任何帮助 新编辑:当我尝试从jvm 1.6机器运行这个jnlp时,我得到了更多的说明stacktrace,如下所示: java.lang.NoClassDefFoundError: javax/ejb/EJBAccessException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at com.sun.javaws.Launcher.executeApplication(Unknown Source) at com.sun.javaws.Launcher.executeMainClass(Unknown Source) at com.sun.javaws.Launcher.doLaunchApp(Unknown Source) at com.sun.javaws.Launcher.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: javax.ejb.EJBAccessException at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) 解决方法
我通过进入Java控制面板(开始菜单>所有程序> Java>配置Java)并将两个URL添加到安全编辑站点列表来解决这个问题.
http://code.google.com http://androidscreencast.googlecode.com 对于Mac系统偏好设置> Java的 在哪里添加这些网站 Java控制面板>安全标签>编辑网站列表>添加>申请>好 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |