2011-09-28 9 views
1

Je souhaite déployer une application Web (* .war) avec Java Web Start (JNLP). Ma condition de départ est que j'ai un serveur Tomcat 6.0 configuré en cours d'exécution disponible sur le client. Le déploiement normal chez Tomcat est assez clair pour moi. Mettez simplement le fichier * .war dans le dossier webapps et redémarrez tomcat - terminé.Déploiement de l'application * .war avec Java Web Start (JNLP)

Si je veux la même chose avec JNLP, il semble en quelque sorte compliqué. Je pensais à la JNLP suivante:

<?xml version="1.0" encoding="utf-8"?> 
<!-- JNLP File for JimageConnect.com JTwacker Application --> 
    <jnlp codebase="file:///local_installer"> 
<information> 
    <title>War deployment</title> 
    <vendor>Vendor</vendor> 
    <description>long </description> 
    <description kind="short">short</description> 
    <offline-allowed/> 
</information> 
<security> 
     <all-permissions/> 
    </security> 
<resources> 
    <jar href="deployment.jar"/> 
    <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/> 
</resources> 
<application-desc main-class="com.vendor.deployment.Deploy" /> 

Où deployment.jar détient:

-) le fichier * .war qui devrait être déployé

-) tout ce qui est nécessaire utiliser le redéploiement de la ligne de commande de l'application web décrite à http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html#Executing_Manager_Commands_With_Ant

-) la classe Deploy qui lit le fichier * .war en tant que Stream à partir des clas sloader et exécute un déploiement/déploiement pour tomcat.

Cette solution devrait fonctionner mais elle semble faite à la main et en quelque sorte moche. Y a-t-il une meilleure solution disponible?

+1

S'il doit y avoir un Tomcat existant, pourquoi ne pas simplement demander à l'utilisateur de déployer l'application? Et si c'est pour des mises à jour automatiques, j'essaierais de regarder dans d'autres mécanismes de mise à jour. – Thomas

+0

Mon scénario ressemble à ceci: J'ai plus de 8000 clients répartis dans tout le pays qui ont une instance de tomcat en cours d'exécution. Tous ces clients peuvent être derrière un pare-feu, hors ligne, peu importe. Donc je pense que je n'ai pas la possibilité de déployer une application web directement. Comme j'ai également déployé une autre fonctionalité client (Swing GUI) via JNLP, c'était ma première supposition d'utiliser JNLP également pour déployer mes archives web. – gerhard

+1

1) Le JNLP tel qu'illustré est invalide. 2) JWS permet de lancer des applications client enrichi, et non des applications Web. 3) JWS est capable d'appeler un installateur (qui pourrait ensuite installer le 'web-app') mais je doute que cela aurait un avantage à diriger l'utilisateur directement vers le programme d'installation. –

Répondre

1

J'ai résolu le problème en créant un programme d'installation client qui a installé mon serveur Tomcat et même géré correctement le contrôle de compte d'utilisateur. Un second outil a déployé mon application si nécessaire. Pourquoi voudriez-vous utiliser webstart pour le déploiement?

Questions connexes