OVH Cloud OVH Cloud

conteneur de servlet minimaliste

16 réponses
Avatar
Sébastien X
bonjour,

J'ai développé une petite application (commerciale) java qui fonctionne en ligne
de commande.
Pour administrer cette application, je souhaiterais utiliser soit une interface graphique
java soit une interface web.

Je préfèrerai l'interface web puisque cela éviterai d'avoir à installer une GUI en
java.
Le problème est qu'il faut donc que j'utilise un conteneur web, il y a bien Tomcat
mais l'installation sera trop difficile pour les clients... (et je doute que l'on
puisse incorporer Tomcat avec une appli commerciale)
Y a t'il un moyen d'avoir un conteneur de servlet minimaliste que l'on puisse facilement
incorporer dans une application commerciale?

Merci par avance

Seb

--
Message monitoré par axinews : http://www.axinews.com/

10 réponses

1 2
Avatar
nioTo
bonjour,

Le problème est qu'il faut donc que j'utilise un conteneur web, il y a bien Tomcat
mais l'installation sera trop difficile pour les clients... (et je doute que l'on
puisse incorporer Tomcat avec une appli commerciale)


Je ne vois pas en quoi c'est compliqué d'installé Tomcat, s'il est bien configuré avec des chemins
relatifs, il peut être juste copié dans un quelconque répertoire non ?
Sinon, on ne peut pas dire que tu "incorpores" Tomcat à ton appli, tu le fourni
juste en plus. Ton interface web sera juste un WAR qui sera déployer dans Tomcat.

Y a t'il un moyen d'avoir un conteneur de servlet minimaliste que l'on puisse facilement
incorporer dans une application commerciale?
Si tu veux, il y a jetty, qui est très bien et pas très gros, simple et rapide

http://jettyserver.org


nioTo

Avatar
Sébastien X
Je ne vois pas en quoi c'est compliqué d'installé Tomcat, s'il est bien configuré
avec des chemins

relatifs, il peut être juste copié dans un quelconque répertoire non ?
Sinon, on ne peut pas dire que tu "incorpores" Tomcat à ton appli, tu le fourni
juste en plus. Ton interface web sera juste un WAR qui sera déployer dans Tomcat.


Ce qui me gène c'est que Tomcat est tout de meme relativement volumineux : je n'ai
besoin que de quelques pages dynamiques relativement sommaires. Je ne suis pas vraiment
"chaud" pour que l'appli soit déployée sous Tomcat, j'aimerais un seul exécutable
jar et éviter que le client n'ai besoin de lancer tomcat en meme temps que le programme
: en gros un conteneur de servlet minimaliste que je pourrais incorporer dans un
jar et qui serait autonome (pas besoin de le lancer via un script comme tomcat).
Le plus simple pourrait peut etre etre de créer une socket, mais il faudrait que
je gère le protocole HTTP (pas forcement simple donc)
De plus, je ne pense pas être autorisé à fournir Tomcat dans une application commerciale.

Y a t'il un moyen d'avoir un conteneur de servlet minimaliste que l'on puisse
facilement


incorporer dans une application commerciale?
Si tu veux, il y a jetty, qui est très bien et pas très gros, simple et rapide

http://jettyserver.org


Je vais regarder ca.
Merci de ton aide.

Seb

--
Message monitoré par axinews : http://www.axinews.com/


Avatar
Adobex
"Sébastien X" a écrit dans le message de
news:3f7f12a5$0$27605$
Je ne vois pas en quoi c'est compliqué d'installé Tomcat, s'il est bien
configuré


avec des chemins
relatifs, il peut être juste copié dans un quelconque répertoire non ?
Sinon, on ne peut pas dire que tu "incorpores" Tomcat à ton appli, tu le
fourni


juste en plus. Ton interface web sera juste un WAR qui sera déployer dans
Tomcat.



Personnellement je ne suis pas convaincu par le bête copié collé... il peut
y avoir des histoires de chemins ou variables d'environnement non cohérents.
Bref, visiblement c'est un peu lourd pour ce que tu veux faire, tu as
raison.

Ce qui me gène c'est que Tomcat est tout de meme relativement volumineux :
je n'ai

besoin que de quelques pages dynamiques relativement sommaires. Je ne suis
pas vraiment

"chaud" pour que l'appli soit déployée sous Tomcat, j'aimerais un seul
exécutable

jar et éviter que le client n'ai besoin de lancer tomcat en meme temps que
le programme

: en gros un conteneur de servlet minimaliste que je pourrais incorporer
dans un

jar et qui serait autonome (pas besoin de le lancer via un script comme
tomcat).

Le plus simple pourrait peut etre etre de créer une socket, mais il
faudrait que

je gère le protocole HTTP (pas forcement simple donc)
De plus, je ne pense pas être autorisé à fournir Tomcat dans une
application commerciale.


Je n'ai pas vu de contre-indication pour une utilisation commerciale mais
mieux vaut être béton sur ce genre de choses. Demander à l'ASF serait la
meilleur chose à faire.

Ca serait bien que tu nous dises quelles sont les opérations types à
réaliser à l'aide de l'interface Web et aussi combien y-t-il de commandes
différentes et comment l'utilisateur devra pouvoir visualiser le résultat de
ses commandes. Une interface Swing pourrait être préférable dans certains
cas. Tu peux également nous dire si c'est une utilisation réseau ou
monoposte.


Adobex

--
http://clxn.free.fr
ICQ# 85383955


Avatar
Sébastien X
Ca serait bien que tu nous dises quelles sont les opérations types à
réaliser à l'aide de l'interface Web et aussi combien y-t-il de commandes
différentes et comment l'utilisateur devra pouvoir visualiser le résultat de
ses commandes. Une interface Swing pourrait être préférable dans certains
cas. Tu peux également nous dire si c'est une utilisation réseau ou
monoposte.


L'application en question est un petit proxy java (translation de sockets) sans prétentions
avec quelques fonctionalités spécifique.
L'appli s'administre facilement en ligne de commande, mais ce n'est pas l'idéal.
Une seule servlet permettrait d'aministrer la "chose", raison pour laquelle je souhaiterais
ne pas installer Tomcat (trop lourd)

--
Message monitoré par axinews : http://www.axinews.com/

Avatar
Nicolas Repiquet
"Sébastien X" a écrit dans le message news:
3f7f12a5$0$27605$

Le plus simple pourrait peut etre etre de créer une socket, mais il
faudrait que

je gère le protocole HTTP (pas forcement simple donc)


Faciiiile. T'es pas obligé d'implémenter tout http. T'as juste à gerer le
get. Donc en gros ça reviens à une socket server mono-thread, tu parse la
requète, tu lance une espèce de servlet maison qui envoi la réponse. Temps
de travail : 1h de documentation, 2h d'implémentation, 1h de
tests/corrections.

-- Nicolas Repiquet

Avatar
Sébastien X
Faciiiile. T'es pas obligé d'implémenter tout http. T'as juste à gerer le
get. Donc en gros ça reviens à une socket server mono-thread, tu parse la
requète, tu lance une espèce de servlet maison qui envoi la réponse. Temps
de travail : 1h de documentation, 2h d'implémentation, 1h de
tests/corrections.


Hummmm.... effectivement. J'ai peut être cherché un peu trop compliqué.
Je souhaitais gérer les sessions (pour un identification basique), il va falloir
que je travaille sur les entêtes HTTP pour gérer les cookies (bouh!) et probablement
créer une pile d'objet pour gérer les objets liés aux sessions

--
Message monitoré par axinews : http://www.axinews.com/

Avatar
Nicolas Repiquet
"Sébastien X" a écrit dans le message news:
3f7f558d$0$27602$

Hummmm.... effectivement. J'ai peut être cherché un peu trop compliqué.
Je souhaitais gérer les sessions (pour un identification basique), il va
falloir

que je travaille sur les entêtes HTTP pour gérer les cookies (bouh!) et
probablement

créer une pile d'objet pour gérer les objets liés aux sessions


Nan. Le mieux c'est d'utiliser l'authentification http. Suffit de renvoyer
le bon header, et t'as l'a petite boiboite qui s'affiche, et le login/pass
son renvoyés à chaque fois.

Ensuite, si tu as encore besoin des sessions tu fait juste un hash avec le
nom de l'utilisateur en clef et un objet session en valeur. Et l'objet
session c'est un hash chaine/objet, sans oublier un objet date qui marque le
moment de la dernière requète de l'interessé. A interval régulier ( à chaque
requète par exemple ) tu fait le tri pour virer les sessions trop vieilles.

N'hésites pas à demander si tu as besoin d'aide ou d'autres renseignements.

-- Nicolas Repiquet

Avatar
Sébastien X
Nan. Le mieux c'est d'utiliser l'authentification http. Suffit de renvoyer
le bon header, et t'as l'a petite boiboite qui s'affiche, et le login/pass
son renvoyés à chaque fois.


Les sessions me serviraient juste pour l'identification en fait, donc effectivement
l'identification http devrait m'éviter les sessions (cool!).

N'hésites pas à demander si tu as besoin d'aide ou d'autres renseignements.


Merci pour ton aide :-)

Sébastien

--
Message monitoré par axinews : http://www.axinews.com/

Avatar
Emmanuel Bourg
Sébastien X wrote:

L'application en question est un petit proxy java (translation de socke ts) sans prétentions
avec quelques fonctionalités spécifique.
L'appli s'administre facilement en ligne de commande, mais ce n'est pas l'idéal.
Une seule servlet permettrait d'aministrer la "chose", raison pour laqu elle je souhaiterais
ne pas installer Tomcat (trop lourd)



Essaye vraiment Jetty, pour à peine 300ko tu as un serveur de
servlet/jsp très complet pour une petite console d'administration
embarquée. Il suffit de 4 lignes pour instancier une webapp :

Server jetty = new Server();
jetty.addListener(new InetAddrPort(8080));
jetty.addWebApplication("/", "./lib/admin.war");
jetty.start();

Avatar
Sébastien X
Essaye vraiment Jetty, pour à peine 300ko tu as un serveur de
servlet/jsp très complet pour une petite console d'administration
embarquée. Il suffit de 4 lignes pour instancier une webapp


Je viens d'installer et de lire la faq, ca à l'air parfait pour mes besoins et en
plus je peux l'utiliser dans une appli commerciale : c'est nickel.
Par contre, il y a un sacré paquet de librairies suplémentaires et de fichiers XML
de configuration à l'installation de jetty, j'espere qu'ils ne sont pas necessaires
dans le cas d'une application web minimaliste sinon ca va faire beaucoup plus de
300 ko

--
Message monitoré par axinews : http://www.axinews.com/

1 2