SeamFramework.orgCommunity Documentation
JBoss Toolsest une collection de plugins Eclipse. JBoss Tools est un projet de d'assistant de création de Seam, Content Assist pour Unified Expression Language (EL) à la fois en facelets et en code Java, un editeur graphique pour le jPDL, un editeur graphique pour les fichiers de configuration de Seam, le support pour l'exécution des tests d'intégration de Seam depuis Eclipse, et bien plus.
Pour faire simple, si vous ête un utilisateur d'Eclipse, alors vous allez vouloirs JBoss Tools!
JBoss Tools, avec seam-gen, fonctionne mieux avec le JBoss AS, mais si c'est pas possible avec quelques trucs d'avoir votre application qui s'exécute sur les autres seveurs d'applications. Le changement est surtout pour ce qui est décrit plus loin pour seam-gen dans ce manueld e référence.
Vérifiez que vous avez JDK 5, JBoss AS 4.2 ou 5.0, Eclipse 3.3, le JBoss Tools plugins (à minima Seam Tools, le Visual Page Editor, jBPM Tools et JBoss AS Tools) et le plugin TestNG pour Eclipse correctement installé avant de commencer.
Merci de consulter la page officielle JBoss Tools installation pour la plus rapide façon d'avoir l'installation de JBoss Tools dans Eclipse. Vous pouvez aussi consulter la page Installing JBoss Tools sur le wiki de la communauté JBoss pour les détails les plus extrèmes et une suite d'approches alternatives.
Démarrez Eclipse et sélectionnez la perspective Seam.
Allez dans File -> New -> Seam Web Project.
En premier lieu, entrez un nom pour votre nouveau projet. Pour ce tutoriel, nous allons utiliserhelloworld
.
Maintenant, vous devez indiquer à JBoss Tools où est JBoss AS. Dans cet exemple, nous utilisons JBoss AS, pensez que vous pouvez certainement utiliser JBoss AS 5.0 tout aussi bien. La sélection de JBoss AS est un processus en deux étapes. En premier vous avez besoin de le définir à l'exécution. Ensuite, vous allez choisir JBoss AS, dasn ce cas:
Entrez le nom à l'exécution, et localisez le sur votre disque dur:
Ensuite, vous devez définir un serveur pour que JBoss Tools puisse y déployer le projet. Soyez sur de sélectionner encore une fois JBoss AS et aussi à l'exéuction vous devez juste définir:
Sur l'écran suivant donnez au serveur un nom, et appuyez sur Finish:
Soyez sur qu'à l'exécution et que le server que vous avez juste créez sont sélectionné, sélectionnez Dynamic Web Project with Seam 2.0 (technology preview) et appuyez sur Next:
Les 3 écrans suivants vous permettent de personnalisé votre nouveau projet, mais pour nous les réglages par défaut seront très bien. Donc appuyez juste sur Next tant que vous n'avez pas atteind l'écran final.
La première étape ici est de dire à JBoss Tools où se trouve le Seam téléchargé que vous voulez utiliser. Add un nouveau Seam Runtime - soyez sur d'indiquer le nom , et sélectionez 2.0 comme version:
La choix le plus important que vous devez faire est entre un déploiement EAR ou un déploiement WAR de votre projet. Les projets EAR supportent les EJB 3.0 et nécéssitent Java EE5. Les projets WAR ne supportent pas les EJB3.0 mais peuvent être déployés dans un environement J2EE. L'empaquetage d'un WAR est aussi plus simple à comprendre. Si vous installez un serveur d'application prêt pour EJB3, choissisez EAR. Sinon choississez WAR. Nous allons supposez que vous avez choisi un déploiement WAR pour le reste du tutoriel, mais vous pouvez suivre exactement les mêmes étapes pour un déploiement de EAR.
Ensuite, sélectionnez votre type de base de données. Nous allons supposé que vous installé MySQL avec un schéma de base de données existant Vous allez devir indiquer à JBoss Tools où est la base de données, selectionnez MySQL comme base de données, et créez un nouveau profil de connection. Sélectionnez Generic JDBC Connection:
Indiquez lui un nom:
JBoss Tolls n'est pas fourni avec des pilotes pour les bases de données, vous devez dire à JBoss Tools où se trouve le pilote MySQL JDBC. Indiquez lui où se trouve le pilote en cliquant sur ....
Localisez le MySQL 5, et appuyez surAdd...:
Choississez le modèle de MySQL JDBC Driver:
Localisez le jar sur votre ordinateur en choissisant Edit Jar/Zip:
Indiquez votre nom d'utilisateur et votre mode passe à utiliser pour se connecter, et si c'est correcte, appuyez sur Ok.
AU final, choississez le pilote nouvellement créer:
Si vous travaillez avec un modèle de données existant, soyez sur de dire à JBoss Tools que des tables existent déjà dans la base de données.
Indiquez le nom d'utilisateur et le mot de passe utilisé pour se connecter, testez la connection en utilisant le bouton Test Connection , et si cela fonctionne, appuyez sur Finish:
Au final, vérifiez les noms des paquet de vos beans générés et si vous en êtes content, cliquez sur Finish:
JBoss dispose d'un support sophistiqué pour le re-déploiement à chaud des EARs et des WARs. Malheureusement, à cause de bugs dans la JVM, le redéploiement d'un EAR—ce qui est common pendant le développement—peut éventuellement déclencher un épuisement de l'espace perm gen. Pour cette raison, nous recommendons d'exécuter JBoss dans une JVM avec un espace perm gen important pendant la phase de développement. Nous sudgerons les valeurs suivantes:
-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512
Si vous navez pas autant de mémoire disponible, les valeurs suivantes sont notre recommendation minimale:
-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256
Localisez le serveur dans le JBoss Server View, clic droit sur le server et selectionnez Edit Launch Configuration:
Ensuite, modifier les arguments de la VM:
SI vous ne voulez pas vous inquietes avec tout ce bidule maintenant, vous n'avez pas à le faire—revennez plus tard, quand vous aurez votre premier OutOfMemoryException
.
Pour démarrer JBoss, et deployez votre projet, clic droit sipplement sur le server que vous avez créés et clic sur Start, (ou sur Debug pour démarrer en mode debogage):
Ne soyez pas appeuré par les documents de configuration en XML qui sont générés dans le dossier du projet. Ils sont pour la plus par des trucs de Java EE standards, le genre de truc que vous avez besoin de créer une fois et ensuite de ne jamais plus le regarder, et ils sont dans 90% des cas les même entre tous les projets Seam.
SI vous utilisez un serveur d'application web de style action traditionnel, vous vous inquiétez surement de comment créer une simple page web avec des méthode d'action sans état en Java.
En premier, sélectonnez New -> Seam Action:
Maintenant, entrez le nom du composant de Seam. JBoss Tools sélectionne des valeurs par défauts judicieuses pour les autres champs:
Au final, appuyez sur Finish.
Maintenant allez sur http://localhost:8080/helloworld/ping.seam
et cliquez sur le bouton. Vous pouvez voir le code derrière cette action en regardant dans le dossier src
du projet. Metez un point d'arrêt dans la méthode ping()
et cliquez de nouveau sur le bouton.
Au final, ouvrez le projet helloworld-test
, localisez la classe PingTest
, clic droit sur elle et choisissez Run As -> TestNG Test:
La première étape pour créer un formulaire. Sélectionnez New -> Seam Form:
Maintenant, entrez le nom du composant de Seam. JBoss Tools sélectionne des valeurs par défauts judicieuses pour les autres champs:
Allez sur http://localhost:8080/helloworld/hello.seam
. Ensuite, regardez comment est le code généré. Exécutez le test. Essayez d'ajouter de nouveaux champs au formulaire et au composant de Seam (notez, vous n'avez pas à redémarrer le serveur d'application à chaque fois que vous modifier le code dans src/action
car Seam recharge à chaud le composant pour vous Section 3.6, « Seam et le déploiement incrémental à chaud avec JBoss Tools »).
Manuellement, créez quelques tables dans votre base de données. (Si vous avez besoin de basculer vers une base de données différente, créez une nouveau projet et sélectionnez la base de données correcte. Ensuite, sélectionnez New -> Seam Generate Entities:
JBoss Tools vous offre aussi l'option de réaliser une ingénieurie inverse des entitées, composants et des vues depuis votre schéma de base de données ou depuis les composants et les vues des entitées JPA existantes. Nous allonrs réaliser une ingénieurie inverse depuis une abase de données.
Redémarrer le déploiement:
Ensuite, allez vers http://localhost:8080/helloworld
. Vous pouvez naviguer dans la base de données, editer des objets existants, et créez de nouveaux objets. Si vous regardez dans le code généré, vous allez probablement être impréssionné par sa simplicité! Seam a été conçu pour que le code d'accès aux données soit simple à écrire à la main, même par des gens qui ne veulent pas tricher en utilisant l'ingénieurie inverse.
JBoss Tools permet le déploiement incrémental à chaud de :
toute page facelets
tout fichier pages.xml
au déballage de la boite.
Mais si nous voulons modifier n'importe quel code Java, nous avons toujours besoin de faire un redémarrage complet de l'application en faisant un Full Publish.
Mais si vous voulez un cycle rapide d'édition/compilation/test, Seam permet de redéploiement incrémental des composants JavaBean. Pour vous permetre d'utilisez cette fonctionnalité, vous devez déploiyer les composants JavaBean dans le dossierWEB-INF/dev
, ainsi ils sont recharger par le classloader spécial de Seam, au lieu du classloader WAR ou EAR.
Vous devez être au courrant des limitations suivantes:
les composants doivent être des composants JavaBean, il ne peuvent pas être des beans EJB3 (nous travaillons pour corriger cette limitation)
les entités ne peuvent jamais être déploiyées à chaud.
les composants déployés via components.xml
ne peuvent pas être rechargés à chaud.
les composants rechargés à chaud ne seront pas visible pour toute les classes déployés à l'extérieur de WEB-INF/dev
Le mode de débogage de Seam doit être actif et jboss-seam-debug.jar
doit être dans WEB-INF/lib
Vous devez avoir le filtre Seam installé dans web.xml
Vous pouvez voir des erreurs si le système est situé pendant le chargement ou le débogage est activé.
Si vous créez un projet WAR en utilisant JBoss Tools, le déploiement incrémental à chaud est disponible immédiatement pour les classes se trouvant dans le dossier des sources src/action
. Cependant, JBoss Tools ne fourni pas de déploiement incrémental à chaud pour les projets EAR.