我有一个企业级的
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://androidscreencast.googlecode.com
对于Mac系统偏好设置> Java的
在哪里添加这些网站
Java控制面板>安全标签>编辑网站列表>添加>申请>好
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。