OVH Cloud OVH Cloud

comment développer pour tomcat ?

6 réponses
Avatar
Gabriel
Bonsoir,

Je développe un site en java avec jsp/servlets.
Je travaille avec le plugin sysdeo tomcat pour eclipse.
J'ai un dossier perso ou je stocke mes sources ; appelons-le
/home/gabi/devJava/myApp.
J'ai un répertoire /usr/local/tomcat/instance/webapps/myApp.

Je fais mes modifs dans mes jsp par ex, puis je fais un war et je
déploie vers /usr/local/tomcat/instance/webapps/myApp.

C'est un peu long de refaire le .war et le redéployer , surtout en phase
de débuggage (ce qui est long c'est pas les manips c'est le temps que la
machine mouline pour faire le tout).
Je suis donc tenté de déplacer mon projet directement dans
/usr/local/tomcat/instance/webapps/myApp mais je trouve pas ca propre du
tout :( mais au moins, ca prend directement en compte mes modifs au fur
et à mesure

Ma question : vous faites-comment ?

Voilà, c'est un peu bête comme question mais je le resterai + si je ne
la posai pas :)

Bonne soirée !

6 réponses

Avatar
Emmanuel Feller
Bonsoir,

Ce n'est pas bete comme question, car on se la pose tous à un moment ...
J'ai eu plusieures stratégies :
1/ comme toi exactement puis amélioré avec un script ant (15 à 20s à chaque
déploiement)

2/ script ant qui recopiait les modifs dans le rep tomcat et pas de war,
l'applie était déployée en éclatée. (3s à 5s de recopie)

3/ maintenant je ne fais plus de dev, surtout des prototypes et des tests,
donc là je fais tout directement sur le tomcat. (C'est moins "propre" mais
tellement plus rapide!)

Ce qui faut garder à l'esprit c'est de bien maîtriser son build.

Le pb de développer directement sur le tomcat, c'est que tu peux changer des
choses sans te rendre forcement compte de ce que tu fais. Donc tu peux faire
le 3, mais tache de bien tester ton appli en faisant un vrai déploiement sur
un espace propre.

Bonne soirée,
Emmanuel
"Gabriel" a écrit dans le message de
news:cfoh4p$ar2$
Bonsoir,

Je développe un site en java avec jsp/servlets.
Je travaille avec le plugin sysdeo tomcat pour eclipse.
J'ai un dossier perso ou je stocke mes sources ; appelons-le
/home/gabi/devJava/myApp.
J'ai un répertoire /usr/local/tomcat/instance/webapps/myApp.

Je fais mes modifs dans mes jsp par ex, puis je fais un war et je
déploie vers /usr/local/tomcat/instance/webapps/myApp.

C'est un peu long de refaire le .war et le redéployer , surtout en phase
de débuggage (ce qui est long c'est pas les manips c'est le temps que la
machine mouline pour faire le tout).
Je suis donc tenté de déplacer mon projet directement dans
/usr/local/tomcat/instance/webapps/myApp mais je trouve pas ca propre du
tout :( mais au moins, ca prend directement en compte mes modifs au fur
et à mesure

Ma question : vous faites-comment ?

Voilà, c'est un peu bête comme question mais je le resterai + si je ne
la posai pas :)

Bonne soirée !


Avatar
JScoobyCed
Gabriel wrote:

Bonsoir,

Je développe un site en java avec jsp/servlets.
Je travaille avec le plugin sysdeo tomcat pour eclipse.
J'ai un dossier perso ou je stocke mes sources ; appelons-le
/home/gabi/devJava/myApp.
J'ai un répertoire /usr/local/tomcat/instance/webapps/myApp.

Je fais mes modifs dans mes jsp par ex, puis je fais un war et je
déploie vers /usr/local/tomcat/instance/webapps/myApp.

C'est un peu long de refaire le .war et le redéployer , surtout en phase
de débuggage (ce qui est long c'est pas les manips c'est le temps que la
machine mouline pour faire le tout).
Je suis donc tenté de déplacer mon projet directement dans
/usr/local/tomcat/instance/webapps/myApp mais je trouve pas ca propre du
tout :( mais au moins, ca prend directement en compte mes modifs au fur
et à mesure

Ma question : vous faites-comment ?

Voilà, c'est un peu bête comme question mais je le resterai + si je ne
la posai pas :)

Bonne soirée !


Umm... Je developpe aussi avec le plugin sysdeo, et je ne vois pas trop
ou est le probleme. Ne pouvez vous pas declarer dans le serveur.xml
d'utiliser votre repertoire de dev pour executer/debugger, et ne faire
de build que lorsque vous avez teste le code en 'local'.
Du moins je fais ca comme ca...

--
JScoobyCed
What about a JScooby snack Shaggy ? ... Shaggy ?!

Avatar
Gabriel
Umm... Je developpe aussi avec le plugin sysdeo, et je ne vois pas trop
ou est le probleme. Ne pouvez vous pas declarer dans le serveur.xml
d'utiliser votre repertoire de dev pour executer/debugger, et ne faire
de build que lorsque vous avez teste le code en 'local'.
Du moins je fais ca comme ca...
Dans server.xml, j'ai ceci :


<Context path="/myApp" reloadable="true"
docBase="/home/gabi/documents/travail/java/myApp"
workDir="/home/charly/documents/travail/java/myApp/work" >
<Logger className="org.apache.catalina.logger.SystemOutLogger"
verbosity="4" timestamp="true"/>
</Context>

Donc ca devrait normalement recharger à chaque modif (reloadable=true).
Mais en fait, non, que je modifie le web.xml ou pas, il ne prend pas en
compte mes modifs. C'est pour cela que je suis amené à poser la question
et redéployer le war.

Merci pour vos conseils cependant.

cordialement,

Avatar
Gabriel
Emmanuel Feller wrote:
Bonsoir,

Ce n'est pas bete comme question, car on se la pose tous à un moment ...
J'ai eu plusieures stratégies :
1/ comme toi exactement puis amélioré avec un script ant (15 à 20s à chaque
déploiement)

2/ script ant qui recopiait les modifs dans le rep tomcat et pas de war,
l'applie était déployée en éclatée. (3s à 5s de recopie)
Cette solution me semble interessante



3/ maintenant je ne fais plus de dev, surtout des prototypes et des tests,
donc là je fais tout directement sur le tomcat. (C'est moins "propre" mais
tellement plus rapide!)

Ce qui faut garder à l'esprit c'est de bien maîtriser son build.

Le pb de développer directement sur le tomcat, c'est que tu peux changer des
choses sans te rendre forcement compte de ce que tu fais. Donc tu peux faire
le 3, mais tache de bien tester ton appli en faisant un vrai déploiement sur
un espace propre.
Oui, c'est le + rapide mais le moins propre effectivement. La solution

de scooby (voir + bas) me semble pas mal aussi, je vais continuer à
réfléchir.
Merci d'avoir pris le temps de répondre !

cordialement,

Avatar
JScoobyCed
Gabriel wrote:

Dans server.xml, j'ai ceci :

<Context path="/myApp" reloadable="true"
docBase="/home/gabi/documents/travail/java/myApp"
workDir="/home/charly/documents/travail/java/myApp/work" >
<Logger className="org.apache.catalina.logger.SystemOutLogger"
verbosity="4" timestamp="true"/>
</Context>

Donc ca devrait normalement recharger à chaque modif (reloadable=true).
Mais en fait, non, que je modifie le web.xml ou pas, il ne prend pas en
compte mes modifs. C'est pour cela que je suis amené à poser la question
et redéployer le war.

Merci pour vos conseils cependant.

cordialement,


Je n'ai pas le tag Logger, car j'utilise Log4J. Par contre j'ai un tag
supplementaire:
<Loader className="org.apache.catalina.loader.DevLoader"
reloadable="true" debug="1"/>

Dans les proprietes Tomcat du projet, onglet DevLoader je choisis quels
sont les .jar et .zip et repertoires contenant mes classes a inclure
dans le context. Peut-etre pouvez vous essayer cette option.

--
JScoobyCed
What about a JScooby snack Shaggy ? ... Shaggy ?!

Avatar
Gabriel
Je n'ai pas le tag Logger, car j'utilise Log4J. Par contre j'ai un tag
supplementaire:
<Loader className="org.apache.catalina.loader.DevLoader"
reloadable="true" debug="1"/>

Dans les proprietes Tomcat du projet, onglet DevLoader je choisis quels
sont les .jar et .zip et repertoires contenant mes classes a inclure
dans le context. Peut-etre pouvez vous essayer cette option.
Oui, maintenant ca prend, bizarre cpdt :)


Merci bcp en tout cas et bonne soirée.