From: Olivier Dedieu <Olivier.Dedieu@inria.fr>
Date sent: Wed, 12 Sep 2001 15:01:06 +0200 (CEST)
To: java@u-strasbg.fr
Subject: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: Olivier.Dedieu@inria.fr
Bonjour,
Je cherche un moyen standard pour redémarrer depuis un navigateur un
web-app. Jusqu'à présent nous travailions avec Resin et j'avais trouvé un
moyen simple : je modifié la date d'une servlet load-on-startup et hop la
web-app redémarrer.
Helas, ce stratagème ne fonctionne pas sous WebSphere, Tomcat et
JRun. Pour WebSphere j'ai du faire une solution propriétaire (à base
de xmlconfig). Donc je cherche un moyen plus propre et plus
ouvert. j'ai rien vu dans les specs. Est-ce que quelqu'un aurait une
idée.
a+
---------------------------------------------------------------
Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
Web: http://www-sor.inria.fr/~dedieu
JavaChannel: http://www.java-channel.org/
Pharos team: http://webtools.dyade.fr/pharos/
---------------------------------------------------------------
Date sent: Fri, 14 Sep 2001 23:17:56 +0200
From: Sylvie&Marc <irigoyenSylvie@wanadoo.fr>
To: Olivier.Dedieu@inria.fr
Copies to: java@u-strasbg.fr
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: java@u-strasbg.fr
tomcat4 permet de le faire,
je te conseillerez bien websphere mais tu ne semble pas trops l'apprecier
;) tomcat4 a l'air d'être vraiment bien (mutliple class loader ,webapp
reload etc...)
Olivier Dedieu wrote:
>Bonjour,
>
>Je cherche un moyen standard pour redémarrer depuis un navigateur un
>web-app. Jusqu'à présent nous travailions avec Resin et j'avais trouvé un
>moyen simple : je modifié la date d'une servlet load-on-startup et hop la
>web-app redémarrer.
>
>Helas, ce stratagème ne fonctionne pas sous WebSphere, Tomcat et
>JRun. Pour WebSphere j'ai du faire une solution propriétaire (à base de
>xmlconfig). Donc je cherche un moyen plus propre et plus ouvert. j'ai
>rien vu dans les specs. Est-ce que quelqu'un aurait une idée.
>
>a+
>
>---------------------------------------------------------------
> Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
> Web: http://www-sor.inria.fr/~dedieu
> JavaChannel: http://www.java-channel.org/
> Pharos team: http://webtools.dyade.fr/pharos/
>---------------------------------------------------------------
>
>
>
>
>
>
From: "Bruno Paul" <brpaul@wanadoo.fr>
To: <java@u-strasbg.fr>
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Date sent: Sat, 15 Sep 2001 14:09:15 +0200
Send reply to: java@u-strasbg.fr
salut,
avec WAS tu peux utiliser l'administration par le navigateur (applet); tu
y retrouves toutes les commandes de la console swing.
bruno
> Olivier Dedieu wrote:
>
> >Bonjour,
> >
> >Je cherche un moyen standard pour redémarrer depuis un navigateur un
> >web-app. Jusqu'à présent nous travailions avec Resin et j'avais trouvé
> >un moyen simple : je modifié la date d'une servlet load-on-startup et
> >hop la web-app redémarrer.
> >
> >Helas, ce stratagème ne fonctionne pas sous WebSphere, Tomcat et
> >JRun. Pour WebSphere j'ai du faire une solution propriétaire (à base de
> >xmlconfig). Donc je cherche un moyen plus propre et plus ouvert. j'ai
> >rien vu dans les specs. Est-ce que quelqu'un aurait une idée.
> >
> >a+
> >
> >---------------------------------------------------------------
> > Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
> > Web: http://www-sor.inria.fr/~dedieu
> > JavaChannel: http://www.java-channel.org/
> > Pharos team: http://webtools.dyade.fr/pharos/
> >---------------------------------------------------------------
> >
> >
> >
> >
> >
> >
>
>
>
From: Olivier Dedieu <Olivier.Dedieu@inria.fr>
Date sent: Mon, 17 Sep 2001 09:32:44 +0200 (CEST)
To: Sylvie&Marc <irigoyenSylvie@wanadoo.fr>
Copies to: java@u-strasbg.fr
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: java@u-strasbg.fr
> tomcat4 permet de le faire,
> je te conseillerez bien websphere mais tu ne semble pas trops
> l'apprecier ;) tomcat4 a l'air d'être vraiment bien (mutliple class
> loader ,webapp reload etc...)
Comme je le disais dans mon mail j'ai déjà le code pour Resin et
Websphere. Je suis à peu près sur que je trouverai aussi le code pour
Tomcat, JRun et WebLogic. Mais ca m'ennui de faire du specifique. Donc je
recherche un moyen standard, J2EE, de faire ca.
A ce propos je trouve qu'on est entrain de vivre avec les AppServer
J2EE une regression : jusqu'à présent je prennais mon appli Java et
elle tournait sur toute plateforme disposant d'un JVM (tout au moins,
Linux, Windows 98/NT/2000, Solaris et True64). Par contre, depuis que je
suis passé en .war je fais le douleureux constat qu'il n'en va pas de
même.
Mon appli se compose de JSP/Servlet/Taglib. On a notre propre
mécanisme de BD (log-based). Pas d'EJB. Tout le
développement a été mené sur Resin 1.2.3 et pourtant :
- Le portage sur WebSphere 3.5.4/Tomcat 3.2.3 (c'est le meme JSP
engine, Jasper) a nécessité
2) L'usage des Wrappers (Integer, Boolean) au lieu des types
primitifs (int, boolean, ...) dans les TEI (variables produites
par les tags)
3) L'abandon de requestDispatcher.include() au profit de
<jsp:include> (au passage qui ne fonctionne pas au sein d'un
custom tag)
4) Développement spécifique pour permettre le rédémarrage de la
web-app depuis le navigateur (sans etre admin de l'app server)
5) Sur Websphere: impossibilité de déclaré une inner class dans un
JSP (apparemment il existerai un patch).
6) Sur Tomcat: pb encore non identifié lié à l'upload de fichier.
- Sur JRun (en repartant de la version fonctionnant sous
Resin/WS/Tomcat)
1) JRun 3.0 ne supporte pas les types primitif dans les attribut
d'un custom tag (e.g. <tag myInt="3") il faut écrire <tag
myInt="<%= 3 %>". JRun 3.1 corrige ca
2) JRun 3.0 et 3.1 refuse de compiler certains JSP qui incluent
plusieurs fois le meme JSP. Pas de solution connue.
- BEA WebLogic 6.1 (en repartant de la version fonctionnant sous
Resin/WS/Tomcat)
1) Il est impératif d'imposer une priorité pour une servlet
load-on-startup (<load-on-startup /> ne marche pas, il faut
qqchose du genre <load-on-startup>1</load-on-startup>)
2) Différents pb sur l'import et l'accès à certaines de mes classes
(pas encore tout compris)
3) Pb pour accèdé depuis un JSP à un attribut mis dans le
ServletContext par la servlet load-on-startup (pas encore tout
compris). L'attribut est null.
4) ??? Surement d'autre pb mais je suis actuellement bloqué par le
précédent.
Bref, ne croyez pas, actuellement, que le dev. d'un web-app peut se
faire simplement en respectant la spec J2EE (surtout avec les
taglibs). Les App. Server. ne l'ont pas implémenté de la même façon.
a+
---------------------------------------------------------------
Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
Web: http://www-sor.inria.fr/~dedieu
JavaChannel: http://www.java-channel.org/
Pharos team: http://webtools.dyade.fr/pharos/
---------------------------------------------------------------
Date sent: Mon, 17 Sep 2001 09:44:07 +0200
From: Jerome Moliere <moliere@viveo-montpellier.com>
To: java@u-strasbg.fr
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: java@u-strasbg.fr
>
>
>
>Mon appli se compose de JSP/Servlet/Taglib. On a notre propre
>mécanisme de BD (log-based). Pas d'EJB. Tout le
>développement a été mené sur Resin 1.2.3 et pourtant :
>
>- Le portage sur WebSphere 3.5.4/Tomcat 3.2.3 (c'est le meme JSP
> engine, Jasper) a nécessité
>
> 2) L'usage des Wrappers (Integer, Boolean) au lieu des types
> primitifs (int, boolean, ...) dans les TEI (variables produites par
> les tags)
>
> 3) L'abandon de requestDispatcher.include() au profit de
> <jsp:include> (au passage qui ne fonctionne pas au sein d'un
> custom tag)
>
> 4) Développement spécifique pour permettre le rédémarrage de la
> web-app depuis le navigateur (sans etre admin de l'app server)
>
> 5) Sur Websphere: impossibilité de déclaré une inner class dans un
> JSP (apparemment il existerai un patch).
>
> 6) Sur Tomcat: pb encore non identifié lié à l'upload de fichier.
>
>
>- Sur JRun (en repartant de la version fonctionnant sous
> Resin/WS/Tomcat)
>
> 1) JRun 3.0 ne supporte pas les types primitif dans les attribut
> d'un custom tag (e.g. <tag myInt="3") il faut écrire <tag
> myInt="<%= 3 %>". JRun 3.1 corrige ca
>
> 2) JRun 3.0 et 3.1 refuse de compiler certains JSP qui incluent
> plusieurs fois le meme JSP. Pas de solution connue.
>
>
>- BEA WebLogic 6.1 (en repartant de la version fonctionnant sous
> Resin/WS/Tomcat)
>
> 1) Il est impératif d'imposer une priorité pour une servlet
> load-on-startup (<load-on-startup /> ne marche pas, il faut
> qqchose du genre <load-on-startup>1</load-on-startup>)
>
> 2) Différents pb sur l'import et l'accès à certaines de mes classes
> (pas encore tout compris)
>
> 3) Pb pour accèdé depuis un JSP à un attribut mis dans le
> ServletContext par la servlet load-on-startup (pas encore tout
> compris). L'attribut est null.
>
> 4) ??? Surement d'autre pb mais je suis actuellement bloqué par le
> précédent.
>
>
>Bref, ne croyez pas, actuellement, que le dev. d'un web-app peut se
>faire simplement en respectant la spec J2EE (surtout avec les
>taglibs). Les App. Server. ne l'ont pas implémenté de la même façon.
>
>
je saisis la balle au bond pour lancer un petit TROLL
que pensez vous de l'utilisation de Velocity/Turbine qui me parait bien
superieur en terme de separation, performance et empreinte memoire sur une
utilisation massive de JSP tjs un peu crades (selon moi!!) </TROLL> Jerome
From: Olivier Dedieu <Olivier.Dedieu@inria.fr>
Date sent: Mon, 17 Sep 2001 11:47:27 +0200 (CEST)
To: java@u-strasbg.fr
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: java@u-strasbg.fr
> je saisis la balle au bond pour lancer un petit TROLL
> que pensez vous de l'utilisation de Velocity/Turbine qui me parait bien
> superieur en terme de separation, performance et empreinte memoire sur
> une utilisation massive de JSP tjs un peu crades (selon moi!!) </TROLL>
JSP peut effectivement devenir très vite crade si on fait beaucoup de
scriptlet (<% ... %>). C'est pour cela, que dans mes JSP je n'ai quasiment
plus de scriptlet (justes des <%= ob.getValue() %> et quelques <% if
(cond) %>). Je me repete mais pour arriver à ca j'utilise:
1. Des bean pour traiter les form et tout ce qui effectue un
traitement important. Le bean est chargé du décodage et de la
validation de parametre. Si tout est OK il fait alors le
traitement.
2. Des Taglib pour controler la présentation de certains objets (eg:
boucle, date, parcourt d'arbre, ...) et pour certains traitement
(requete dans la base, envoi de mail, pagination des longue liste,
parsing de sources RSS, formattage à la wiki, ...)
a+
---------------------------------------------------------------
Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
Web: http://www-sor.inria.fr/~dedieu
JavaChannel: http://www.java-channel.org/
Pharos team: http://webtools.dyade.fr/pharos/
---------------------------------------------------------------
Date sent: Mon, 17 Sep 2001 23:09:50 +0200
From: Sylvie&Marc <irigoyenSylvie@wanadoo.fr>
To: java@u-strasbg.fr
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: java@u-strasbg.fr
juste pour preciser Olivier:
tomcat4 offre une servlet qui permet de reloader les webapp,
le seul code spécifique que tu as ecrire c'est un page html et qque
ligne de java script
par ailleur au reponse 2, et 5 j'avoue ne pas être très fan des inner
class(sauf cas tès très très exceptionel) quand a l'utilisation des
wrappers je ne sais pas pourquoi tu en as besoin mais cela est très
gourmand en perf n'est pas? juste un autre point la portabilté j'ai testé
mon appli sur 3 jvm et sur windows et linux et tu veux savoir les
résultats jdk1.3 IBM performant mais pas totalement portable pb de gestion
des fichiers avec des nom a la con sur windows jdk1.3 de blackown coredump
a la compilation de struts le jdk de sun marche correctement mais bon j'ai
des différence de fonctionement sur les path entre jbuilder et la version
officielle
bref la portabilité en java est déja difficile alors je te trouve
exigent pour les app server ;)
Marc godin
Olivier Dedieu wrote:
>> tomcat4 permet de le faire,
>> je te conseillerez bien websphere mais tu ne semble pas trops
>> l'apprecier ;) tomcat4 a l'air d'être vraiment bien (mutliple class
>> loader ,webapp reload etc...)
>>
>
>Comme je le disais dans mon mail j'ai déjà le code pour Resin et
>Websphere. Je suis à peu près sur que je trouverai aussi le code pour
>Tomcat, JRun et WebLogic. Mais ca m'ennui de faire du specifique. Donc je
>recherche un moyen standard, J2EE, de faire ca.
>
>A ce propos je trouve qu'on est entrain de vivre avec les AppServer
>J2EE une regression : jusqu'à présent je prennais mon appli Java et
>elle tournait sur toute plateforme disposant d'un JVM (tout au moins,
>Linux, Windows 98/NT/2000, Solaris et True64). Par contre, depuis que je
>suis passé en .war je fais le douleureux constat qu'il n'en va pas de
>même.
>
>Mon appli se compose de JSP/Servlet/Taglib. On a notre propre
>mécanisme de BD (log-based). Pas d'EJB. Tout le
>développement a été mené sur Resin 1.2.3 et pourtant :
>
>- Le portage sur WebSphere 3.5.4/Tomcat 3.2.3 (c'est le meme JSP
> engine, Jasper) a nécessité
>
> 2) L'usage des Wrappers (Integer, Boolean) au lieu des types
> primitifs (int, boolean, ...) dans les TEI (variables produites par
> les tags)
>
> 3) L'abandon de requestDispatcher.include() au profit de
> <jsp:include> (au passage qui ne fonctionne pas au sein d'un
> custom tag)
>
> 4) Développement spécifique pour permettre le rédémarrage de la
> web-app depuis le navigateur (sans etre admin de l'app server)
>
> 5) Sur Websphere: impossibilité de déclaré une inner class dans un
> JSP (apparemment il existerai un patch).
>
> 6) Sur Tomcat: pb encore non identifié lié à l'upload de fichier.
>
>
>- Sur JRun (en repartant de la version fonctionnant sous
> Resin/WS/Tomcat)
>
> 1) JRun 3.0 ne supporte pas les types primitif dans les attribut
> d'un custom tag (e.g. <tag myInt="3") il faut écrire <tag
> myInt="<%= 3 %>". JRun 3.1 corrige ca
>
> 2) JRun 3.0 et 3.1 refuse de compiler certains JSP qui incluent
> plusieurs fois le meme JSP. Pas de solution connue.
>
>
>- BEA WebLogic 6.1 (en repartant de la version fonctionnant sous
> Resin/WS/Tomcat)
>
> 1) Il est impératif d'imposer une priorité pour une servlet
> load-on-startup (<load-on-startup /> ne marche pas, il faut
> qqchose du genre <load-on-startup>1</load-on-startup>)
>
> 2) Différents pb sur l'import et l'accès à certaines de mes classes
> (pas encore tout compris)
>
> 3) Pb pour accèdé depuis un JSP à un attribut mis dans le
> ServletContext par la servlet load-on-startup (pas encore tout
> compris). L'attribut est null.
>
> 4) ??? Surement d'autre pb mais je suis actuellement bloqué par le
> précédent.
>
>
>Bref, ne croyez pas, actuellement, que le dev. d'un web-app peut se
>faire simplement en respectant la spec J2EE (surtout avec les
>taglibs). Les App. Server. ne l'ont pas implémenté de la même façon.
>
>a+
>
>---------------------------------------------------------------
> Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
> Web: http://www-sor.inria.fr/~dedieu
> JavaChannel: http://www.java-channel.org/
> Pharos team: http://webtools.dyade.fr/pharos/
>---------------------------------------------------------------
>
>
>
>
>
>
From: Olivier Dedieu <Olivier.Dedieu@inria.fr>
Date sent: Tue, 18 Sep 2001 09:16:31 +0200 (CEST)
To: java@u-strasbg.fr
Subject: Re: [Servlet/JSP] Redémarrage d'un web-app
Send reply to: java@u-strasbg.fr
> juste pour preciser Olivier:
>
> tomcat4 offre une servlet qui permet de reloader les webapp,
> le seul code spécifique que tu as ecrire c'est un page html et qque
> ligne de java script
Ok merci je vais regarder ca.
> par ailleur au reponse 2, et 5 j'avoue ne pas être très fan des inner
> class(sauf cas tès très très exceptionel)
Les inner classes, plus particulièrement les anonymous classes, sont
une solution, à mon gout, élégante qui palie les fait qu'on ne peut
pas passer une méthode en parametre. En plus elle assure le typage. Je
trouve au contraire qu'elle sont un des vrai plus de Java.
> quand a l'utilisation des wrappers je ne sais pas pourquoi tu en as
> besoin mais cela est très gourmand en perf n'est pas?
Il me sont imposé par WebSphere et Tomcat (et surement JRun aussi) car
c'est pietre implémentation de JSP sont incapables de supporter les types
primitif dans les tag lib. Par exemple, j'ai un tag qui me fait un
parcourt d'arbre. Pour chaque noeud visité, il me positionne une série de
variable (position, variation de niveau, prochaine variation, ..) qui sont
des int. Avec Resin ca marche tres bien mais Tomcat et Websphere exigent
d'utiliser Integer.
Cela dit, sur le perf je ne suis pas sur que ca soit vraiment
gourmand. La classe est final et les methodes (intValue()) sont
facilement in-linable. Seule l'allocation reste couteuse (et encore
avec hotspot est son GC generationnel c'est meme pas sur).
> juste un autre point la portabilté
> ...
> bref la portabilité en java
> est déja difficile alors je te trouve exigent pour les app server
> ;)
La précédente version de notre appli existent depuis 2 ans et à
toujours fonctionner sous les différents OS que je citais. On a
recemment du migrer en urgence notre serveur de DigitalUnix à
Linux. Ca c'est fait sans difficulté : on l'a arreté d'un coté et on
la relancé de l'autre !
C'est néanmoins vrai que pour les pb de path nous avions prévu ca et
nous utilisons File.separator au lieu de '/'.
Donc, sous reserve
1. qu'on ne dépende pas d'un IDE spécifique (je travaille avec JDK
1.3.1 + emacs + make + cvs)
2. qu'on résolve à l'avance les rares points de non portabilité (path,
jni, BD, ...),
3. qu'on dispose d'une JVM correcte
alors on peut écrire des appli Java vraiment portables.
a+
---------------------------------------------------------------
Olivier Dedieu - (INRIA - Bull / WebTools - Pharos)
Web: http://www-sor.inria.fr/~dedieu
JavaChannel: http://www.java-channel.org/
Pharos team: http://webtools.dyade.fr/pharos/
---------------------------------------------------------------