Glassfish



Serveur d'application JavaEE open-source

=Installation & Démarrage=

Vérifiez la version de votre JRE : Java 7 est requis.

Téléchargez le zip depuis https://glassfish.java.net/download.html

Lisez https://glassfish.java.net/getstarted.html

Ouvrez la console Web http://localhost:4848

IMPORTANT : Sécurisez votre console d'administration qui n'est pas sécurisé par défaut : https://glassfish.java.net/docs/4.0/security-guide.pdf

Installez le plugin Glassfish dans votre IDE : https://glassfish.java.net/ide.html

=Créez une application web simple Hello avec Maven=

Remarque: il y a d'autres archetypeArtifactId disponibles

Ajoutez les fichiers de projet pour simplifier l'importation dans votre IDE favori.

Remarque : il est possible de déployer l'artefact à l'issue du packaging en modifiant le pom.xml au préalable.

=Déploiement= Vous pouvez déployer votre application (ejbjar, war, ear) via la console ou bien via la ligne de commande suivante

Ouvrez http://localhost:8080/ecomweb-0.1.0-SNAPSHOT/

Servlet, Filter et JSP
Modifiez et re-construisez votre application en ajoutant :
 * un JSP hello.jsp
 * une Servlet HelloServlet.java
 * une Servlet WebSocket
 * une Servlet asynchrone (en utilisant les annotations JSR315)
 * une Servlet HelloAServlet.java (en utilisant les annotations JSR315)
 * un Filter (en utilisant les annotations JSR315)

Rédeployez celle-ci

Ouvrez avec votre navigateur ou avec cURL
 * http://localhost:8080/ecom
 * http://localhost:8080/ecom/hello.jsp?name=Didier
 * http://localhost:8080/ecom/helloann?name=Didier

Regardez le contenu du journal du domaine.

Web Service
Modifiez et re-construisez votre application en ajoutant :
 * un Web Service HelloWS.java
 * un client Web Service HelloWSClient.java

Redéployez

Ouvrez
 * http://localhost:8080/ecom/HelloWSService
 * http://localhost:8080/ecom/HelloWSService?wsdl
 * http://localhost:8080/ecom/HelloWSService?Tester

Générez une application client pour le WebService

Utilisez le plugin Maven wsimport dans le pom.xml du projet.

RESTFul Service
Modifiez et r-construisez votre application en ajoutant :
 * un RESTful Service HelloREST.java

Redéployez

Utilisez curl pour interoger le service

plus d'information sur JAX-RS ...

=Undeploy=

${GLASSFISH_HOME}/bin/asadmin undeploy ecomweb

=Arrêt=

IMPORTANT : pensez à arrêter votre serveur et la VM sur lequel il s'exécute quand vous utilisez une plateforme Cloud. ${GLASSFISH_HOME}/bin/asadmin stop-domain domain1

=Création des autres artefactes JavaEE 7= Créez les autres artéfactes JavaEE 77 avec les archetypes JavaEE 7 disponibles sur http://mvnrepository.com/artifact/org.codehaus.mojo.archetypes

VERSION=0.1.0-SNAPSHOT

Création de l'EJB-JAR
mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes    -DarchetypeArtifactId=ejb-javaee7   -DarchetypeVersion=1.1    -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/    -DgroupId=fr.polytech-grenoble.ricm.ecom   -DartifactId=ecomejb     -Dversion=0.1.0-SNAPSHOT -Dpackage=ecom.ejb   -Darchetype.interactive=false     --batch-mode  --update-snapshots     archetype:generate cd ecomejb mvn clean install

${GLASSFISH_HOME}/bin/asadmin deploy --name ecomejb --contextroot "ecomejb" target/ecomejb-0.1.0-SNAPSHOT.jar ${GLASSFISH_HOME}/bin/asadmin list-applications ${GLASSFISH_HOME}/bin/asadmin list-sub-components ecomejb

Ajoutez les EJB suivants:
 * l'Entity Bean ProductBean
 * le Session Bean ProducServicetBean
 * l'interface remote du Session Bean ShoppingCart
 * l'interface local du Session Bean ShoppingCartLocal
 * le Session Bean ShoppingCartBean

Création de l'application cliente EJB
mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes    -DarchetypeArtifactId=appclient-javaee7   -DarchetypeVersion=1.1     -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/    -DgroupId=fr.polytech-grenoble.ricm.ecom   -DartifactId=ecomapp     -Dversion=0.1.0-SNAPSHOT -Dpackage=ecom.ejb.client   -Darchetype.interactive=false     --batch-mode  --update-snapshots     archetype:generate

cd ecomapp mvn clean install

CLASSPATH=TODO java -cp ${CLASSPATH} -jar target/ecomapp-0.1.0-SNAPSHOT.jar

Création de l'EAR
mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes    -DarchetypeArtifactId=ear-javaee7   -DarchetypeVersion=1.0    -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/    -DgroupId=fr.polytech-grenoble.ricm.ecom   -DartifactId=ecomear     -Dversion=0.1.0-SNAPSHOT -Dpackage=ecom.ear   -Darchetype.interactive=false     --batch-mode  --update-snapshots     archetype:generate

cd ecomear mvn clean install

Modifiez le pom.xml pour y ajouter ecomejb.jar, ecomweb.war, ecomwebadmin.war et ecomapp.jar.

Retirez (ie undeploy) ces applications.

Déployez l'EAR ${GLASSFISH_HOME}/bin/asadmin deploy --name ecomear --contextroot "ecom" target/ecomear-0.1.0-SNAPSHOT.ear

${GLASSFISH_HOME}/bin/asadmin list-applications ${GLASSFISH_HOME}/bin/asadmin list-sub-components ecomear

Création du super POM (parent)
Créez le pom.xml du super POM (parent) qui liste les modules du projet et factorise les propriétés du projet (name, groupId, version, scm ...) et les configurations des plugins (maven-compiler-plugin, ...).

Modifiez chaque pom.xml des modules en conséquence.

Exemple pour l'application web

Re-construisez le projet depuis le super POM.

Redéployez (redeploy) l'EAR vers le serveur

=Complément=

VisualVM
Lancez la console VisualVM. Installez le plugin pour Glassfish (Tools > Plugins > Available Plugins). Relancez la console VisualVM Connectez vous au serveur en utilisant la console VisualVM.

jvisualvm &

OSGi Felix
Accès aux commandes du Gogo Shell de Felix ./bin/asadmin osgi lb -l

Lire http://docs.oracle.com/cd/E26576_01/doc.312/e24928/overview.htm#gjjxt

=Documentation=
 * http://docs.oracle.com/javaee/7/firstcup/doc/home.htm
 * https://glassfish.java.net/docs/4.0/reference-manual.pdf
 * https://glassfish.java.net/docs/4.0/administration-guide.pdf
 * https://glassfish.java.net/docs/4.0/application-deployment-guide.pdf