エンタープライズJava jnlpファイルによってクライアントのjvmキャッシュにダウンロードされるjarがたくさんあるアプリケーションがあります。アプリケーションを起動すると、次のスタックトレースが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を実行しようとすると、より詳細なスタックトレースが得られました。
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> Configure Java)]に移動し、2つのURLをセキュリティ編集サイトリストに追加します] 。
http://androidscreencast.googlecode.com
Macシステム環境設定> Javaの場合
これらのサイトを追加する場所
Javaコントロールパネル> [セキュリティ]タブ> [サイトリストの編集]> [追加]> [適用]> Ok
トレースとログを有効にすることをお勧めします。こちらの方法をご覧ください。
そして、コマンドラインからアプリケーションを実行します。
javaws -verbose AppName.jnlp
次に、このパスに保存されているログおよびトレースファイルの手がかりを確認できます
\Documents and Settings\<USERNAME>\Application Data\Sun\Java\Deployment\log
imgソース:
http://www.Cisco.com/c/en/us/support/docs/security/hostscan/117097-trouble-Java7-00.html
この問題は、Java 1.8u60で発生しました。JNLPファイル内のアイコンへの無効な参照が原因です。以前は、欠落していたアイコンは無視されていました。アイコンへの参照は問題を修正しました。
削除した2つの参照は次のとおりです。
<icon href="ORCL.jpg" kind="splash"/>
<icon href="ORCS.jpg" kind="default"/>
お役に立てば幸いです。
Java(コントロールパネル))の[詳細設定]タブの下にあるチェックボックスを有効にして、[JNLPファイル]セクションの下にある[常に許可]オプションにチェックマークを付けることもできます。
Arch Linuxシステムでは、Javaコントロールパネルが/opt/Java7/jre/bin/ControlPanel
(jcontrol
へのシンボリックリンク)でアクセスできることがわかりました。 )。実行することで、Securityタブにアクセスし、セキュリティレベルをMediumに下げました。次に、/opt/Java7/bin/javaws
のようなものを開始すると、セキュリティ警告を受け入れるように求められます。
非常によく似た問題がありました( 正しい署名のJNLPアプリケーションがJava 7 で実行できませんでした)
確認して修正しました
JNLPファイルを更新して1.7を適用しました
<リソース>
<j2se version = "1.7 *" Java-vm-args = "-Xmx32m" max-heap-size = "32m" href = "http://Java.Sun.com/products/autodl/j2se 「/>