Glassfish: Difference between revisions
No edit summary |
|||
| Line 223: | Line 223: | ||
</pre> |
</pre> |
||
==Création du POM parent== |
|||
Créez le pom.xml du 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. |
|||
<pre> |
|||
<project> |
|||
... |
|||
<parent> |
|||
<groupId>fr.polytech-grenoble.ricm.ecom</groupId> |
|||
<artifactId>ecom-parent</artifactId> |
|||
<version>1</version> |
|||
<relativePath>../ecom-parent/pom.xml</relativePath> |
|||
</parent> |
|||
<modelVersion>4.0.0</modelVersion> |
|||
<artifactId>ecom-web</artifactId> |
|||
... |
|||
</project> |
|||
</pre> |
|||
=Complément= |
=Complément= |
||
Revision as of 06:49, 1 October 2014
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
GLASSFISH_HOME=`pwd`
${GLASSFISH_HOME}/bin/asadmin
${GLASSFISH_HOME}/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 web simple Hello avec Maven
cd .. mvn -DarchetypeGroupId=org.codehaus.mojo.archetypes -DarchetypeArtifactId=webapp-javaee7 -DarchetypeVersion=1.1 -DarchetypeRepository=https://nexus.codehaus.org/content/repositories/snapshots/ -DgroupId=fr.polytech-grenoble.ricm.ecom -DartifactId=ecomweb -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 ecomweb mvn clean package
Ajoutez les fichiers de projet pour simplifier l'importation dans votre IDE favori.
mvn eclipse:eclipse mvn idea:idea
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
${GLASSFISH_HOME}/bin/asadmin list-applications
${GLASSFISH_HOME}/bin/asadmin deploy --name ecomweb ../ecomweb/target/ecomweb-0.1.0-SNAPSHOT.war
${GLASSFISH_HOME}/bin/asadmin list-applications
${GLASSFISH_HOME}/bin/asadmin list-applications --type web
${GLASSFISH_HOME}/bin/asadmin list-applications --subcomponents
Ouvrez http://localhost:8080/ecomweb-0.1.0-SNAPSHOT/
Web Application WAR
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
${GLASSFISH_HOME}/bin/asadmin redeploy --name ecomweb --contextroot "ecom" target/ecomweb-0.1.0-SNAPSHOT.war
Ouvrez avec votre navigateur
- http://localhost:8080/ecom
- http://localhost:8080/ecom/hello.jsp?name=Didier
- http://localhost:8080/ecom/helloann?name=Didier
ou avec cURL
curl GET "http://localhost:8080/ecom/hello.jsp"
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/ecom/HelloWSService
- http://localhost:8080/ecom/HelloWSService?wsdl
- http://localhost:8080/ecom/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/ecom/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/ecom/hellorest' curl -i -X GET -H Accept:application/json 'http://localhost:8080/ecom/hellorest/Didier' curl -i -X POST -H "Accept: application/json" -d "firstName=james" http://localhost:8080/ecom/hellorest/Didier curl -i -X DELETE -H "Accept: application/json" http://localhost:8080/ecom/hellorest/Didier
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 artéfactes 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 CustomerFacadBean
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 POM parent
Créez le pom.xml du 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.
<project>
...
<parent>
<groupId>fr.polytech-grenoble.ricm.ecom</groupId>
<artifactId>ecom-parent</artifactId>
<version>1</version>
<relativePath>../ecom-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ecom-web</artifactId>
...
</project>
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