Glassfish



Serveur d'application JavaEE open-source

=Installation & Démarrage=

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

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

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

unzip glassfish-4.0-ml.zip

cd glassfish4

./bin/asadmin

./bin/asadmin start-domain

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 simple Hello avec Maven=

cd .. mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes \ -DarchetypeArtifactId=webapp-javaee7 \ -DarchetypeVersion=0.4-SNAPSHOT \ -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/ \ -DgroupId=fr.polytech-grenoble.ricm.ecom \ -DartifactId=hello \ -Dversion=0.1.0-SNAPSHOT \ -Dpackage=ecom \ -Darchetype.interactive=false \ --batch-mode \ --update-snapshots \ archetype:generate

mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes    -DarchetypeArtifactId=webapp-javaee7   -DarchetypeVersion=0.4-SNAPSHOT     -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/    -DgroupId=fr.polytech-grenoble.ricm.ecom   -DartifactId=hello     -Dversion=0.1.0-SNAPSHOT -Dpackage=ecom   -Darchetype.interactive=false     --batch-mode  --update-snapshots     archetype:generate

Remarque: il y a d'autres archetypeArtifactId disponibles

cd hello mvn clean package

Ajoutez les fichiers de projet pour simplifier l'importation dans votre IDE favori. mvn eclipse:eclipse mvn idea:idea mvn netbeans:netbeans

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

=Déploiement= Vous pouvez déployer votre application (ejbjar, war, ear) via la console ou bien via la ligne de commande suivante ./bin/asadmin list-applications

./bin/asadmin deploy --name hello ../hello/target/hello-0.1.0-SNAPSHOT.war

./bin/asadmin list-applications

./bin/asadmin list-applications --type war

./bin/asadmin list-sub-components --appname hello hello.ear

Ouvrez http://localhost:8080/hello-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 ./bin/asadmin redeploy --name hello --contextroot "hello" ../hello/target/hello-0.1.0-SNAPSHOT.war

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

Regardez le contenu du journal du domaine. tail glassfish/domains/domain1/logs/server.log

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/hello/HelloWSService
 * http://localhost:8080/hello/HelloWSService?wsdl
 * http://localhost:8080/hello/HelloWSService?Tester

Générez une application client pour le WebService cd .. mkdir hellowsclient cd hellowsclient wsimport -keep -p fr.polytechgrenoble.ricm.ecom.ws.client http://localhost:8080/hello/HelloWSService?wsdl

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 curl -i -X GET -H Accept:application/json 'http://localhost:8080/hello/hellorest' curl -i -X GET -H Accept:application/json 'http://localhost:8080/hello/hellorest/Didier' curl -i -X POST -H "Accept: application/json" -d "firstName=james" http://localhost:8080/hello/hellorest/Didier curl -i -X DELETE -H "Accept: application/json" http://localhost:8080/hello/hellorest/Didier

plus d'information sur JAX-RS ...

=Undeploy=

./bin/asadamin undeploy hello

=Arrêt=

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

=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