web-dev-qa-db-fra.com

L'extension JNLP ne s'ouvre pas dans Internet Explorer

J'ai un problème d'ouverture des extensions * .jnlp à l'aide d'Internet Explorer. L'extension s'ouvre correctement dans Chrome et Firefox, ce qui me laisse penser que c'est un problème avec IE et éventuellement la configuration du serveur Web/JNLP. Plus précisément, Internet Explorer ouvre le fichier * .jnlp en tant que script * .xml au lieu de télécharger le fichier ou de l’ouvrir avec Java Web Start. 

Exemple:

<?xml version="1.0" encoding="utf-8" ?>
- <!--
 JNLP File for Downtime Registration Application
  -->
- <jnlp spec="1.7+" codebase="http://foo:8080/bar" href="bar.jnlp">
- <information>
  <title>FOO</title>
  <vendor>FOO Inc.</vendor>
  <description>FOO BAR System</description>
- <shortcut online="false">
  <desktop />
  <menu submenu="FOO" />
  </shortcut>
  </information>
- <security>
  <all-permissions />
  </security>
- <resources>
  <j2se version="1.7+" Java-vm-args="-client" />

  ... 

  </resources>
  <application-desc main-class="FooBarMainApp" />
  </jnlp>

J'ai essayé les "correctifs" suivants/solutions de contournement sans succès:

  • Exécuter IE en tant qu'administrateur
  • Ajout d'URL à la vue de compatibilité
  • Modification des paramètres Java pour "Toujours autoriser JNLP/MIME"
  • Réinitialiser les paramètres avancés d'Internet Explorer
  • Modifier les paramètres de l'extension MIME dans le fichier web.xml du serveur Web.
  • Modifier le paramètre IE pour toujours autoriser le téléchargement de fichiers

Mise à jour: J'ai pu résoudre ce problème avec la solution de contournement que j'ai postée ci-dessous. Cependant, je cherche une solution plus permanente si quelqu'un a des suggestions. Plus précisément, je recherche un moyen de résoudre ce problème côté entreprise/serveur, dans la mesure du possible. Ce serait bien si les utilisateurs n'avaient pas besoin de modifier les paramètres de leur côté (autre que le passage de IE à un autre navigateur).

MIME-Mapping dans web.xml:  

  <mime-mapping>
    <extension>jnlp</extension>
    <mime-type>application/x-Java-jnlp-file</mime-type>
</mime-mapping>
6
ballBreaker

J'ai finalement résolu ce problème en modifiant un paramètre spécifique dans Internet Explorer. 

Outils -> Options Internet -> Sécurité -> Personnaliser le niveau ... -> Divers -> Activer le reniflement MIME-> Désactiver

Il m'a fallu un certain temps pour trouver ce correctif; je l'inclue donc au cas où quelqu'un d'autre aurait également ce problème. 

PS: C’est plus une solution de contournement qu’un correctif permanent. Toute information supplémentaire serait utile.

Mise à jour : Vous avez fini par ajouter <% @ page contentType = "application/x-Java-jnlp-fichier"%> au début du fichier JNLP, puis de générer la guerre. Essentiellement, le JNLP se lancerait automatiquement mais donnerait une erreur d’analyse. Une fois que cette ligne a été retirée du JNLP et que le WAR a été reconstruit, le JNLP a lancé javawebstart et l'erreur d'analyse a disparu (AKA Problem Solved). Je ne sais pas vraiment pourquoi, mais cettemagiesemblait fonctionner. 

9
ballBreaker

Le problème JNLP peut être résolu en procédant comme suit:

  1. Ouvrez Mozilla Firefox, puis téléchargez l'extension JNLP . Mozilla m'a demandé comment l'ouvrir, j'ai choisi Ouvrir avec javaws (sur C:\Program Files\Java\jre1.8.0_161\lib).
  2. Choisissez d'appliquer ce choix à partir de maintenant.

J'ai essayé de l'ouvrir sur Internet Explorer et cela fonctionnait automatiquement.

Ou depuis le fichier téléchargé, cliquez à droite sur le fichier d’extension JNLP, ouvrez-le avec javaws (sur C:\Program Files\Java\jre1.8.0_161\lib). Je n'ai pas essayé celui-ci mais je pense que cela devrait fonctionner.

0
Zakaria

Je stocke mon application JWS hors de EAR/WAR, ainsi que toutes les bibliothèques signées.

Si l'application JWS est hébergée sur un serveur Web Apache, dans httpd.conf, vous pouvez ajouter le type comme suit:

AddType application/x-Java-jnlp-file .jnlp

Référence ici: http://httpd.Apache.org/docs/current/mod/mod_mime.html