it-swarm.com.de

Java-Jnlp-Anwendung durch Sicherheitseinstellungen blockiert

Ich habe eine Enterprise-Java-Anwendung, die viele Gläser enthält, die von einer Jnlp-Datei in den Jvm-Cache des Clients heruntergeladen werden. Wenn ich die Anwendung starte, erhalte ich in Java Console die folgende Stapelablaufverfolgung:

        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.

Meine JNLP-Datei sieht mit einigen zensierten Beschreibungen wie folgt aus:

<?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" />

Beachten Sie auch, dass ich in der Anzeige mit mehr Informationen einige Ausnahmebedingungen erhalten kann:

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

Ich habe keine Sicherheitsbeschränkungen für die Sicherheit von Java Control Panel. Es ist auf mittlerer Ebene wie folgt: here

Danke für jede Hilfe

New Edit: Ich habe mehr erklärenden Stacktrace erhalten, als ich versuchte, dieses Jnlp von einer Jvm 1.6-Maschine aus auszuführen:

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)
13
ali kerim erkan

Ich habe dieses Problem behoben, indem ich in die Java-Systemsteuerung (Startmenü> Alle Programme> Java> Java konfigurieren) ging und zwei URLs zur Security Edit Site List hinzufüg. 

http://code.google.com

http://androidscreencast.googlecode.com

Für Mac-Systemeinstellungen> Java

Wo Sie diese Sites hinzufügen können

Java-Systemsteuerung> Registerkarte Sicherheit> Site-Liste bearbeiten> Hinzufügen> Übernehmen> Ok enter image description here

15
turbandroid

Ich empfehle Ihnen, die Ablaufverfolgung und Protokollierung zu aktivieren, siehe hier:

enter image description here

Führen Sie dann die Anwendung über die Befehlszeile aus.

javaws -verbose AppName.jnlp

Dann können Sie nach Hinweisen in Protokoll- und Trace-Dateien suchen, die in diesem Pfad gespeichert sind.

\Documents and Settings\<USERNAME>\Application Data\Sun\Java\Deployment\log

img source:

http://www.Cisco.com/c/de/us/support/docs/security/hostscan/117097-trouble-Java7-00.html

3
Hernán Eche

Ich habe versucht, das Element file:/ hinzuzufügen und arbeitete. 

 enter image description here

3
MirlvsMaximvs

Dieses Problem mit Java 1.8u60 wurde durch tote Verweise auf Symbole in der JNLP-Datei verursacht. Zuvor wurden die fehlenden Symbole ignoriert, aber jetzt sehen wir Fehler in der Stack-Ablaufverfolgung in der Frage. Das Entfernen der Verweise auf die Symbole hat unser Problem behoben.

Hier sind die zwei Referenzen, die wir entfernt haben:

<icon href="ORCL.jpg" kind="splash"/>
<icon href="ORCS.jpg" kind="default"/>

Hoffentlich hilft das.

1
Stephen M

Sie können auch versuchen, das Kontrollkästchen auf der Registerkarte "Erweitert" von Java (in der Systemsteuerung) zu aktivieren, und aktivieren Sie die Option Immer zulassen im Abschnitt JNLP-Datei

0
rinilnath

Auf einem Arch Linux System habe ich festgestellt, dass Java Control Panel unter /opt/Java7/jre/bin/ControlPanel (einem Symlink zu jcontrol) zugänglich ist. Durch das Ausführen konnte ich auf die Registerkarte Security zugreifen und dann die Sicherheitsstufe auf Medium einstellen. Dann werde ich aufgefordert, eine Sicherheitswarnung zu akzeptieren, wenn /opt/Java7/bin/javaws gestartet wird.

0
Micah Elliott

Ich hatte ein sehr ähnliches Problem ( Eine korrekt signierte JNLP-Anwendung konnte in Java 7 nicht ausgeführt werden )

Ich habe es durch Sicherstellen behoben

  • Ich habe mit 1.7 kompiliert
  • Ich habe meine JNLP-Datei aktualisiert, um 1.7 zu erzwingen

    <Ressourcen>
    <j2se version = "1.7 *" Java-vm-args = "- Xmx32m" max-heap-size = "32m" href = "http://Java.Sun.com/products/autodl/j2se" />

0
YanisTheYak