OVH Cloud OVH Cloud

[jetty] finalement ..

8 réponses
Avatar
MiXAO
Bon finalement, j'ai de gros problèmes à mettre en place ce que je
voudrais faire avec jetty.
En gros, je voudrais qu'un client se connecte sur mon serveur jetty,
balancer une chaine au client et recevoir et gérer les POST du client.
Tout cela sans forcément passer par des fichiers. Je voudrais avoir une
communication client/serveur en http mais sans passer par des fichiers.
Est-ce possible ?

8 réponses

Avatar
Thomas Nguyen
On Tue, 19 Oct 2004 23:13:02 +0200, MiXAO wrote:

je voudrais qu'un client se connecte sur mon serveur jetty,
balancer une chaine au client et recevoir et gérer les POST du client.


Pour "balancer des chaines", je te conseille une catapulte.

Pour "recevoir et gérer les posts", je te conseille des servlets (des
HttpServlet, pour être précis).


Est-ce possible ?


La réponse est: OUI.



PS: le prend pas mal, je te prend pas pour un con, c'est juste que je peux
pas m'empêcher d'être taquin.

Avatar
MiXAO
Thomas Nguyen wrote:
On Tue, 19 Oct 2004 23:13:02 +0200, MiXAO wrote:


je voudrais qu'un client se connecte sur mon serveur jetty,
balancer une chaine au client et recevoir et gérer les POST du client.



Pour "balancer des chaines", je te conseille une catapulte.


:)
En fait, je voulais dire, gérer des GET et des POST.
Un serveur web ne peut rien envoyer au client de son propre fait. Au
mieux il ne peut que préparer sa réponse et l'envoyer au prochain GET.
C'est exactement ce que je veux faire.
Le client envoie une requete via POST et interroge frequemment le
serveur web (mon appli) avec GET pour voir s'il a une réponse.


Pour "recevoir et gérer les posts", je te conseille des servlets (des
HttpServlet, pour être précis).



Au risque de paraitre ingrat et d'abuser un poil, tu aurais un exemple
(même minuscule) ?
J'ai essayé le tutorial de leur site mais je me choppe une exception à
la première connexion d'un navigateur sur mon website.

Exception in thread "PoolThread-1" java.lang.NoClassDefFoundError:
javax/servlet/http/Cookie
at org.mortbay.http.HttpRequest.<clinit>(HttpRequest.java:100)



Est-ce possible ?



La réponse est: OUI.



PS: le prend pas mal, je te prend pas pour un con, c'est juste que je peux
pas m'empêcher d'être taquin.


Aucun soucis ;) Je suis un vieux routard des forums mais je débute en
java et en particulier en utilisation de webserver.


Avatar
Thomas Nguyen
On Tue, 19 Oct 2004 23:46:27 +0200, MiXAO wrote:


Au risque de paraitre ingrat et d'abuser un poil, tu aurais un exemple
(même minuscule) ?


Le pire, c'est que je dois bien en avoir un!

J'avais un pote qui avait besoin que je lui mette le pied à l'étrier en
Java et Servlet, alors je lui avait fait une structure de projet, un
script ant, et un servlet basique qui fait rien à part ouvrir une
connexion base de donnée.
Il me semble que je l'ai jamais testé, parce que c'est surtout une
accumulation de bouts de codes commentés, mais ça doit compiler.

Je sais pas dans quelle mesure ça peux te servir, mais si ça
t'interesse, contacte moi par mail, que je t'envoie un zip de tout le
bazar.



PS: le prend pas mal, je te prend pas pour un con, c'est juste que je peux
pas m'empêcher d'être taquin.


Aucun soucis ;) Je suis un vieux routard des forums mais je débute en
java et en particulier en utilisation de webserver.


Cool, on va bien s'entendre alors.


Avatar
Christophe Roudet
tu peux essayer http://simpleweb.sourceforge.net/ si tu ne veux forcement te
mettre au servlet.

Christophe

"MiXAO" wrote in message
news:417582dd$0$29894$
Bon finalement, j'ai de gros problèmes à mettre en place ce que je
voudrais faire avec jetty.
En gros, je voudrais qu'un client se connecte sur mon serveur jetty,
balancer une chaine au client et recevoir et gérer les POST du client.
Tout cela sans forcément passer par des fichiers. Je voudrais avoir une
communication client/serveur en http mais sans passer par des fichiers.
Est-ce possible ?



Avatar
djice
Pour envoyer un message a un client lorsqu'il se connecte, tu peux utiliser
une queue JMS qui permet l'échange de message entre un client/serveur. Tous
ça en servlet bien sur...


"MiXAO" a écrit dans le message de news:
41758ab2$0$30554$
Thomas Nguyen wrote:
On Tue, 19 Oct 2004 23:13:02 +0200, MiXAO wrote:


je voudrais qu'un client se connecte sur mon serveur jetty,
balancer une chaine au client et recevoir et gérer les POST du client.



Pour "balancer des chaines", je te conseille une catapulte.


:)
En fait, je voulais dire, gérer des GET et des POST.
Un serveur web ne peut rien envoyer au client de son propre fait. Au
mieux il ne peut que préparer sa réponse et l'envoyer au prochain GET.
C'est exactement ce que je veux faire.
Le client envoie une requete via POST et interroge frequemment le
serveur web (mon appli) avec GET pour voir s'il a une réponse.


Pour "recevoir et gérer les posts", je te conseille des servlets (des
HttpServlet, pour être précis).



Au risque de paraitre ingrat et d'abuser un poil, tu aurais un exemple
(même minuscule) ?
J'ai essayé le tutorial de leur site mais je me choppe une exception à
la première connexion d'un navigateur sur mon website.

Exception in thread "PoolThread-1" java.lang.NoClassDefFoundError:
javax/servlet/http/Cookie
at org.mortbay.http.HttpRequest.<clinit>(HttpRequest.java:100)



Est-ce possible ?



La réponse est: OUI.



PS: le prend pas mal, je te prend pas pour un con, c'est juste que je
peux


pas m'empêcher d'être taquin.


Aucun soucis ;) Je suis un vieux routard des forums mais je débute en
java et en particulier en utilisation de webserver.





Avatar
Thomas Nguyen
On Wed, 20 Oct 2004 07:24:50 +0200, djice wrote:

Pour envoyer un message a un client lorsqu'il se connecte, tu peux utiliser
une queue JMS qui permet l'échange de message entre un client/serveur. Tous
ça en servlet bien sur...


Je vois pas le rapport entre JMS et Servlet !?
C'était de l'ironie?

Sinon, JMS est une solution assez séduisante, et très propre
techniquement. Ca offre une API d'assez haut niveau et ça évite de
polluer le code client avec du polling.
Par contre, je trouve ça assez lourd: faut mettre en place un bus JMS et
tout ce qui va avec. Je pense que ça fait un peu trop pour MiXAO.

L'avantage d'un protocole basé sur HTTP, c'est que ça passe sur Internet
sans soucis, qu'il y a pas besoin de 36000 libs du côté du client, et
qu'on est assez indépendant du langage d'implémentation.

Bref, JMS, c'est bien, mais c'est un brin compliqué pour du "simple"
client/serveur.
Enfin bon, c'est pas mon programme, c'est pas mon problème, c'est pas moi
qui décide.

Avatar
Emmanuel Feller
"Thomas Nguyen" a écrit dans le message de
news:
On Wed, 20 Oct 2004 07:24:50 +0200, djice wrote:

Pour envoyer un message a un client lorsqu'il se connecte, tu peux
utiliser


une queue JMS qui permet l'échange de message entre un client/serveur.
Tous


ça en servlet bien sur...


Je vois pas le rapport entre JMS et Servlet !?
C'était de l'ironie?


non, non, pas d'ironie ...

C'est une solution qui permet de désynchroniser les échanges clt/serveur,
notamment quand il y a de l'attente coté serveur.
Tu as un WebService qui écoute les requetes et les envoie dans une queue JMS
puis rend la main à l'utilisateur, derrière une batterie de processus
consommateur traite ton message et poste le résultat dans une deuxième
queue.

Enfin la servlet qui donne le résultat va voir dans la deuxieme queue si le
résultat est là, sinon elle te fait patienter ...

A titre d'information, c'est comme cela que fonctionne le site de la sncf.
Et ce système est repris et généralisé par Bea weblogic 8.1 Workshop (et je
pense aussi Beehive maintenant) pour avoir des webservices asynchrones.

Pas question donc de déployer du jms sur les clients, mais à l'intérieur du
serveur ... Ca fonctionne très bien, je l'ai mis en oeuvre sur plusieurs
projets déjà.

My2cents,
Emmanuel Feller


Avatar
Thomas Nguyen
On Wed, 20 Oct 2004 15:09:01 +0200, Emmanuel Feller wrote:

"Thomas Nguyen" a écrit dans le message de
Je vois pas le rapport entre JMS et Servlet !?
C'était de l'ironie?


non, non, pas d'ironie ...

C'est une solution qui permet de désynchroniser les échanges clt/serveur,
notamment quand il y a de l'attente coté serveur.
Tu as un WebService qui écoute les requetes et les envoie dans une queue JMS
puis rend la main à l'utilisateur, derrière une batterie de processus
consommateur traite ton message et poste le résultat dans une deuxième
queue.


OK, je comprend mieux. Tu proposais JMS *en plus* de Servlet.
J'avais compris que tu voulais remplacer les servlet par des queues JMS
implémentées en Servlet! Je commençais à me dire que tu avais fumé. ;)



Enfin la servlet qui donne le résultat va voir dans la deuxieme queue si le
résultat est là, sinon elle te fait patienter ...
(...)
Pas question donc de déployer du jms sur les clients, mais à l'intérieur du
serveur ... Ca fonctionne très bien, je l'ai mis en oeuvre sur plusieurs
projets déjà.


On en reviens bien à un protocole de polling sur HTTP entre le client et
le serveur.
Me voila rassuré, tout redeviens logique.

On parle donc de traitement asynchrone et distribué du côté du serveur.
J'ai jamais fait plus que bidouiller JMS, mais je connais un peu. Ca m'a
l'air très puissant pour mettre en place des systèmes distribués très
complexes. Par contre, j'ai des doutes pour les cas où le serveur est
simple et limité à un seul process.

On commence sérieusement à dériver du sujet de la mise en place de
servlets avec Jetty. ;)