我有一个企业级的
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)