Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
enseignement:d35:tp:ejb [2016/11/16 14:15] – Emmanuel Bruno | enseignement:d35:tp:ejb [2023/09/20 18:52] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
- | L' | + | L' |
===== Mise en place de l' | ===== Mise en place de l' | ||
- | Dans ce cadre de ces TP nous utiliserons le serveur d' | + | ==== Le serveur d' |
+ | Dans le cadre de ces TP nous utiliserons le serveur d' | ||
- | ==== Manuellement ==== | + | Une édition spéciale de payara dite micro (https://www.payara.fish/learn/getting-started-with-payara-micro/) est dédiée aux architectures micro-services. |
- | <note tip> | + | |
- | Mettez en place votre propre serveur glassfish en suivant : http://bruno.lsis.univ-tln.fr/java/glassfish | + | |
- | </note> | + | |
- | ==== Avec docker | + | ==== Installation dans des conteneurs |
- | Il est aussi possible | + | Il fortement conseillé |
- | https:// | + | |
- | (qui s'appuie sur https:// | + | |
- | Installer glasfish et la base de donnée (postgres) | + | Vous trouverez ici un exemple |
- | <cli> | + | https:// |
+ | |||
+ | < | ||
+ | <nowiki> | ||
git clone git@github.com: | git clone git@github.com: | ||
- | docker-compose up -d payara-full | + | |
+ | | ||
docker-compose | docker-compose | ||
- | </cli> | + | </nowiki> |
- | + | </konsole> | |
- | Paramétrer les connexions à la base de données : | + | |
- | < | + | |
- | docker-compose exec payara-full / | + | |
- | --user admin \ | + | |
- | --passwordfile=/ | + | |
- | create-jdbc-connection-pool \ | + | |
- | --datasourceclassname org.postgresql.ds.PGConnectionPoolDataSource \ | + | |
- | --restype javax.sql.ConnectionPoolDataSource \ | + | |
- | --property portNumber=5432: | + | |
- | postgres-pool | + | |
- | </ | + | |
- | + | ||
- | < | + | |
- | | + | |
- | --user admin \ | + | |
- | --passwordfile=/ | + | |
- | create-jdbc-resource \ | + | |
- | --connectionpoolid postgres-pool \ | + | |
- | jdbc/ | + | |
- | </ | + | |
- | + | ||
- | Déployer une application : | + | |
- | cp / | + | |
- | + | ||
- | Avec docker machine (en cours de rédaction): | + | |
- | Nécessite uniquement virtualbox, docker-compose et éventuellement un client docker. | + | |
- | + | ||
- | RESTE UN PB de doit avec dockjer machine : enlever le montage du volume pour postgresql dans compose. | + | |
- | < | + | |
- | alias CMD_DM=" | + | |
- | + | ||
- | alias CMD_DM_C=" | + | |
- | + | ||
- | CMD_DM_C testMachine | + | |
- | CMD_DM ip testMachine | + | |
- | if [[ ! -d " | + | |
- | docker-machine stop testMachine | + | |
- | VBoxManage sharedfolder add testMachine --name dockerhome --hostpath | + | |
- | docker-machine start testMachine | + | |
- | eval " | + | |
- | CMD_DM -D ssh testMachine "sudo umount / | + | |
- | CMD_DM | + | |
- | + | ||
- | cd ~/ | + | |
- | git clone git@github.com: | + | |
- | + | ||
- | CMD_DM | + | |
- | sudo su | + | |
- | + | ||
- | penser au proxy | + | |
- | + | ||
- | curl -L " | + | |
- | chmod +x / | + | |
- | cd ~/ | + | |
- | docker-compose | + | |
- | + | ||
- | exit | + | |
- | + | ||
- | CMD_DM | + | |
- | ouvrir le port 4848 dans un navigateur | + | |
- | </ | + | |
- | + | ||
- | ===== Services Web REST ===== | + | |
- | Pour des rappels sur REST vous pourrez lire ou relire une introduction à [[http:// | + | |
- | + | ||
- | Les EJB peuvent être utilisés très simplement dans des services web, il suffit de les annoter comme des ressources. | + | |
- | + | ||
- | L' | + | |
- | < | + | |
- | mvn archetype: | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | mvn package | + | |
- | </ | + | |
- | + | ||
- | Il faut ensuite le compiler, en faire un package (war) et le déployer sur un serveur JEE. | + | |
- | + | ||
- | < | + | |
- | /t/ejbws$ asadmin start-domain domain1 | + | |
- | Picked up _JAVA_OPTIONS: | + | |
- | Waiting for domain1 to start .......... | + | |
- | Successfully started the domain : domain1 | + | |
- | domain | + | |
- | Log File: / | + | |
- | Admin Port: 4848 | + | |
- | Command start-domain executed successfully. | + | |
- | /t/ejbws$ asadmin deploy target/ | + | |
- | </ | + | |
- | + | ||
- | Le serveur web associé est accessible ici (cf. '' | + | |
- | http:// | + | |
- | + | ||
- | Ainsi que les service web associés au resources : | + | |
- | + | ||
- | curl http:// | + | |
- | + | ||
- | < | + | |
- | Etudier en détail cet exemple avant de passer à la suite. | + | |
- | </note> | + | |
- | ===== Hello EJBs ===== | + | L'interface |
- | En utilisant l'archetype Maven suivant, nous allons mettre en place un "Hello word REST à base d'EJB." | + | |
- | < | + | Pour paramétrer les connexions à la base de données, étudier le docker-compose.yml qui contient un exemple avec H2 (à adapter pour postgres). |
- | mvn archetype: | + | |
- | -DarchetypeGroupId=org.codehaus.mojo.archetypes | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | </ | + | |
- | < | + | Pour déployer une application, |
- | Ajouter à la classe | + | |
- | </note> | + | |
- | < | + | ===== Une application JEE " |
- | Annoter l'EJB '' | + | * Nous allons revoir |
- | </note> | + | * https:// |
- | <note warning> | + | Ce projet illustre les concepts et techniques de base en s'appuyant sur les documents suivants. |
- | La plupart des librairie sont déjà présente dans le serveur d'application, | + | |
- | </ | + | |
- | ===== JPA dans JavaEE ===== | + | * La mise en place de base et l'utilisation d'une Servlet sont expliqués ici : |
- | Pour utiliser JPA avec un serveur JEE, le '' | + | * https://blog.payara.fish/getting-started-with-jakarta-ee-9-hello-world |
- | <code xml> | + | * L' |
- | <?xml version=" | + | |
- | < | + | |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | < | + | |
- | < | + | |
- | <jta-data-source> | + | |
- | //classes.. | + | |
- | </persistence-unit> | + | |
- | + | ||
- | </ | + | |
- | </code> | + | |
- | Ensuite l' | + | * La mise en place de base d'une API REST est présentée ici : |
+ | * https://blog.payara.fish/getting-started-with-jakarta-ee-9-how-to-create-a-rest-api-with-jakarta-ee-9 | ||
+ | * L' | ||
- | <note tip> | + | * La mise en place de base de CDI est présentée ici |
+ | * https:// | ||
+ | * curl -v " | ||
+ | * curl -v " | ||
- | Vous trouverez plus de détails sur les EJB dans le tutoriel | + | * A vous de découvrir la mise en place JPA avec JEE (deux points principaux |
+ | * https://blog.payara.fish/getting-started-with-jakarta-ee-9-jakarta-persistence-api-jpa | ||
- | < | + | A partir de là, mettre |
- | Mettez | + | |
- | </ | + | |
- | Voilà un petit exemple simple : | ||
- | git clone https:// | + | Pour aller beaucoup plus loin.... https://github.com/hantsy/jakartaee9-starter-boilerplate |
- | mvn package && asadmin deploy --name ejbws ejbws/ | + | |
- | curl http://localhost: | + | |
- | curl http:// | + | |
- | curl -X PUT -H " | + | |
- | | ||
- | ---- dataentry page ---- | ||
- | type : TP | ||
- | enseignement_tags | ||
- | technologie_tags | ||
- | theme_tags | ||
- | ---- | ||
---- struct data ---- | ---- struct data ---- | ||
+ | metadata.level | ||
+ | metadata.Type | ||
+ | metadata.Nom | ||
+ | metadata.Enseignements : D35 | ||
+ | metadata.Promotions | ||
+ | metadata.Technologies : Java, JavaEE, EJB, RestWS | ||
+ | metadata.Thèmes | ||
+ | metadata.Description : | ||
---- | ---- | ||