Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Appli + servlet + SGBD

6 réponses
Avatar
eric.tisserant
Bonjour

Rod=E9 aux IHM swings et aux connexions aux SGBD, je debute dans le
monde des servlets.

Voil=E0 mon enivronnement et mon besoin; j'ai une IHM (dej=E0 cod=E9e), je
voudrais inform=E9e cette derniere =E0 chaque fois qu'une appli X vient
peupler la BD.
il est specifi=E9 que c'est l'appli X qui lors d'un nouveau commit doit
venir informer mon ihm via http.

Donc je pensais instancier une servlet au lancement de mon appli, en
surchargement la methode doPost pour etre alert=E9 d'une nouvelle
entr=E9e en base.

Voil=E0 mes interrogations:

- Comment instancier ma servlet (un simple new)?
- A quoi va ressembler une requete depuis le client X, en considerant
que j'ai besoin seulement de l'ID du nouvel objet (valeur=3D new_ID)?
- Est ce necessaire de crer une httpconnection?

Voil=E0 j'espere avoir =E9t=E9 assez clair, si klk1 pouvait m'aiguiller
sur la marche =E0 suivre? et confirmer ou infirmer mon id=E9e?

merci
Eric

6 réponses

Avatar
David JOURAND
Bonjour,

Je ne suis pas sûr de comprendre...

eric.tisserant a écrit :

Voilà mon enivronnement et mon besoin; j'ai une IHM (dejà codée), je
voudrais informée cette derniere à chaque fois qu'une appli X vient
peupler la BD.


Cette IHM est une application swing, HTML, JSP, ... ? Cette appli X est
une application swing, HTML, JSP, ... ?


il est specifié que c'est l'appli X qui lors d'un nouveau commit doit
venir informer mon ihm via http.


Il n'est pas possible de faire un push d'information du serveur vers un
client... sauf si le client est aussi serveur...


Donc je pensais instancier une servlet au lancement de mon appli, en
surchargement la methode doPost pour etre alerté d'une nouvelle
entrée en base.


Une servlet répond généralement à une requête HTTP... Cette appli
tourne sur le serveur ?


- Comment instancier ma servlet (un simple new)?


C'est une mauvaise idée, car le context doit être peuplé par le moteur
de servlet. Le plus simple est donc de faire une requête HTTP.


- A quoi va ressembler, une requete depuis le client X, en considerant
que j'ai besoin seulement de l'ID du nouvel objet (valeur= new_ID)?


http://www.monsite.com/path/to/servlet?valeur=new_ID


- Est ce necessaire de crer une httpconnection?


Il existe des bibliothèques pour faire des requêtes HTTP facilement :
http://jakarta.apache.org/commons/httpclient/ par exemple.


--
David Jourand

Avatar
Eric

Bonjour,

Je ne suis pas sûr de comprendre...

Cette IHM est une application swing, HTML, JSP, ... ?


il s'agit d'une appli swing

Cette appli X est une application swing, HTML, JSP, ... ?


il s'agit d'une appli tier en c++

il est specifié que c'est l'appli X qui lors d'un nouveau commit doit
venir informer mon ihm via http.


Il n'est pas possible de faire un push d'information du serveur vers un
client... sauf si le client est aussi serveur...


En fait je ne pense pas avoir été trop clair, mon ihm doit etre
informé par l'appli X, je voulais imposé un architecture client
-serveur corba (plus de mon ressort), mais l'equipe de dev de l'appli X
n'est pas d'accord et ils ont la decision....
J'ai eu droit simplement à "on vous informera par requete HTTP de
toute nouvelles données", le format de la requete etant à definir

Une servlet répond généralement à une requête HTTP... Cette app li
tourne sur le serveur ?


Pardon Mais l'IHM ou l'appli X ?

- Comment instancier ma servlet (un simple new)?


C'est une mauvaise idée, car le context doit être peuplé par le mot eur
de servlet. Le plus simple est donc de faire une requête HTTP.


- A quoi va ressembler, une requete depuis le client X, en considerant
que j'ai besoin seulement de l'ID du nouvel objet (valeur= new_ID)?


http://www.monsite.com/path/to/servlet?valeur=new_ID


OK

- Est ce necessaire de crer une httpconnection?


Il existe des bibliothèques pour faire des requêtes HTTP facilement :
http://jakarta.apache.org/commons/httpclient/ par exemple.

OK mais d'apres vous en aurais je besoin?

--
David Jourand



Avatar
Eric
Re Bonjour David

en ce qui concerne cette question:
- Comment instancier ma servlet (un simple new)?


C'est une mauvaise idée, car le context doit être peuplé par le m oteur
de servlet. Le plus simple est donc de faire une requête HTTP.




J'ai Tomcat d'installé dans mon environement final d'utilisation.
Je ne sais si je vais pas dire des conn...; Mais est il possible (ou
plutot faut il) lancer la servlet depuis tomcat?
mais dans ce cas là comment faire le lien entre la servlet et la
methode qui va bien dans mon appli?

merci



Avatar
peipito

J'ai Tomcat d'installé dans mon environement final d'utilisation.
Je ne sais si je vais pas dire des conn...; Mais est il possible (ou
plutot faut il) lancer la servlet depuis tomcat?
mais dans ce cas là comment faire le lien entre la servlet et la
methode qui va bien dans mon appli?


A mon avis tu devrais changer de facon de voir.
Plutot que ton IHM soit avertie, tu devrais lui demander d'aller faire
la verification requise a intervalle regulier.

Il me semble qu'il est possible d'appeler une servlet a partir d'une
application non web ( en j2se par exemple ) mais je n'en suis pas
certain.

Par contre entre une applet et une servlet cela est effectivement
possible ( voir
http://www.developpez.net/forums/archive/index.php/t-39678.html ).

Avatar
David JOURAND
Bonjour,

Si je récapitule :

1 - Vous avez une appli C++ qui fait des modifications dans la base et qui
fera une requête HTTP sur une URL que vous fournirez.

2 - Vous avez une appli swing qui doit être mise à jour lorsqu'il y mise
à jour la base notifiée par la requête HTTP.


Donc soit votre application embarque un /mini/ serveur web pour recevoir
les requêtes HTTP et les interpreter, soit votre application se connecte
régulièrement à un serveur web qui aura lui-même été notifié par
HTTP de cette mise à jour et qui aura stocké l'information...

A mon avis, le plus simple et le plus légé est le mini serveur web. Soit
vous prenez une librairie qui fait le serveur web (peut-être
http://jakarta.apache.org/httpcomponents/http-core/index.html), soit vous
le codez (il suffit d'écouter sur le port 80 et d'interpréter
correctement ce qui arrive : très simple).


Eric a écrit :

J'ai Tomcat d'installé dans mon environement final d'utilisation.
Je ne sais si je vais pas dire des conn...; Mais est il possible (ou
plutot faut il) lancer la servlet depuis tomcat?
mais dans ce cas là comment faire le lien entre la servlet et la
methode qui va bien dans mon appli?


Tomcat est un moteur de servlet : il attend des requêtes HTTP qu'il
transmet à une servlet. Celle-ci traite l'information et renvoie une page
(HTML, XML, ou n'importe quoi d'autre) vers le client qui a initié la
requête HTTP... Vous ne pourrez pas avoir une mise à jour en temps réel
de votre IHM swing, sauf si la servlet se connecte à l'appli swing (via
RMI par exemple), mais cela devient vraiment lourd...


--
David Jourand

Avatar
Eric
Bonjour David

Merci pour ces précieuses infos, je vais de ce pas sur le lien ce
dessus et vous tiendrais au courant de mon avancement.

Merci