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