[Tomcat] Mon application sur un lecteur distant

Mon application sur un lecteur distant [Tomcat] - Java - Programmation

Marsh Posté le 13-05-2005 à 15:01:04    

Salut,  
 
je voudrais déplacer mon dossier webapps vers un dossier sur un lecteur à distance (volonté de l'entreprise qui aura l'application). Il sait qu'il faut que je modifie le fichier serveur.xml, j'ai trouvai la ligne, mais je ne sait pas quoi mettre car il est juste marqué "webapps" :
 

Citation :

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">


 
Il y a certainement une autre ligne à modifier mais je ne sais pas quoi... Que faut-il que je mette dans "appBase" sachant que je veux que mes fichier de l'application soit sur le lecteur X:\mon_app ?


Message édité par Lo-chan le 16-05-2005 à 11:54:50
Reply

Marsh Posté le 13-05-2005 à 15:01:04   

Reply

Marsh Posté le 13-05-2005 à 15:09:48    

Je crois que tu dois décrire un Context à l'intérieur du host et ne pas changer les attribut de l'élément Host.


---------------
Le site de ma maman
Reply

Marsh Posté le 13-05-2005 à 15:57:15    

merci pour ta réponse ^^
 
Alors j'ai trouvé en bas une ligne avec, oh miracle, ca parle de mon applic, je l'ai modifié et je me retrouve donc avec ça :

Reply

Marsh Posté le 13-05-2005 à 15:59:15    

oups
 

Citation :

<Context path="/mon_app" reloadable="true" docBase="J:\mon_app" workDir="J:\mon_app\work" />


 
Mais j'ai une erreur :
 

Citation :

The page cannot be displayed


 
Bizarre... C'est le bon chemin, j'ai fait un copier/coller... Pourquoi ?

Reply

Marsh Posté le 13-05-2005 à 20:45:39    

http://jakarta.apache.org/tomcat/t [...] index.html
 
Pour les chemins, je pense qu'il faut mettre des slashes '/', et non des backslashes '\'

Reply

Marsh Posté le 13-05-2005 à 22:39:43    

merci pour le lien j'avai un peu fouillé le site, mais j'été pas tomber là dessus...
 
pour les histoire de slash, normalement sous windows on utilise des "\" et non pas de "/", de plus, je pense ke l'adresse qui été avant été en "\", m'enfin, j'essayerai quand meme lundi.
 
merci pour ton aide

Reply

Marsh Posté le 16-05-2005 à 08:26:14    

Cherrytree : Bon alors j'ai essayer ton truc de modifier la balise context, mais ca ne marche pas.
 
Quand il est sur le C:\ (local) il n'y a aucun problème et quand il est sur le J:\ (distant) il ne répond que la page ne peut pas être affichée.
 
Pour moi il doit y avoir un autre balise à modifier. Mais lequelle ?
 
Et apparement, on peut mettre des "/" et des "\" ca ne pose aucun problème (les deux marche quand je le met en local).  :)


Message édité par Lo-chan le 16-05-2005 à 08:30:21
Reply

Marsh Posté le 16-05-2005 à 09:34:57    

J'ai lu ton post, mais je n'ai pas la réponse.


---------------
Le site de ma maman
Reply

Marsh Posté le 16-05-2005 à 09:55:35    

Merci pour ton aide, peut-être que quelqu'un d'autre aura une réponse.

Reply

Marsh Posté le 16-05-2005 à 13:40:04    

T'as essayé en modifiant le Host ? En créant, par exemple, un répertoire webapps sur le lecteur distant.
 
Regarde aussi les fichiers de log.


Message édité par charly007 le 16-05-2005 à 13:43:18
Reply

Marsh Posté le 16-05-2005 à 13:40:04   

Reply

Marsh Posté le 16-05-2005 à 14:34:10    

alors j'ai essayé le host, je me retrouve avec ca :
 
<Host name="dept"  
            debug="0"  
            appBase="webapps"
            unpackWARs="true"  
            autoDeploy="true"
            xmlValidation="false"  
            xmlNamespaceAware="false">
<Context path="/mon_app"
         reloadable="true"  
         docBase="J:\webapps\mon_app"  
         workDir="J:\webapps\mon_app\work" />
 
J'ai ajouté toutes les applique du dossier "webapps" du lecteur local au lecteur distant.
 
"dept" c'est le nom du lecteur distant, faudrait que j'essaye avec son ip carrement vu que avant c'été marqué "localhost". Mais, j'me suis dit qu'à ce moment là faudrait peut-être plutôt que je marque http://dept:8080/mon_app (mais ca renvoi sur un site web...  :( ).
 
Afin bref, avec http://localhost:8080/mon_app je me retrouve avec une page blanche. j'ai plus l'adim ni le manager  :(  
 
Pour les log, qu'est-ce que je dois chercher précisément ?  
 
Est-ce que avec l'ip du serveur (du lecteur distant), ca fonctionnerait ?  
Autre chose, où on modifie la variable $CATALINA_BASE ?


Message édité par Lo-chan le 16-05-2005 à 14:36:38
Reply

Marsh Posté le 16-05-2005 à 20:14:07    

Ce que je te propose d'essayer c'est :
 - Créer un répertoire sur le lecteur réseau, par exemple J:\webapps
 - Modifier le fichier server.xml avec :

Citation :


<Host name="localhost"  
            debug="0"  
            appBase="J:\webapps"  
            unpackWARs="true"  
            autoDeploy="true"  
            xmlValidation="false"  
            xmlNamespaceAware="false">
[...]
</Host>


L'attribut name correspond au nom réseau du serveur, et n'a rien à voir avec le lecteur distant.
 
Cela aura pour incidence que toutes les webapps devront être placées sur le lecteur distant. Ton serveur sert-il plusieurs webapps ?
Si tu veux qu'il en soit différemment, il faut modifier la balise Context, ou alors créer un 2e hôte virtuel.
 
Concernant la balise Context, il est écrit :

Citation :


Please note that for tomcat 5, unlike tomcat 4.x, it is NOT recommended to place <Context> elements directly in the server.xml file. Instead, put them in the META-INF/context.xml directory of your WAR file or the conf directory as described above.


 
Pour les fichiers de log, tu peux regarder en premier lieu les fichiers stderr.log et stdout.log.


Message édité par charly007 le 16-05-2005 à 20:21:44
Reply

Marsh Posté le 17-05-2005 à 09:00:51    

Oki, j'ai fait tout ça mais ça n'a rien changé.  
 
Au passage, j'ai déplacé toutes les applications de webapps qui été en local et je les ai mise directement sur le lecteur distant. Donc, j'ai l'admin et le manager dessus.
 
Je m'explique : j'ai donc modifié la balise host comme tu le disais avec mon dossier contenant mes webapps. J'ai redémarré le serveur, et lorsque j'essayer de voir l'acceuil de tomcat ou le manager, j'avais une page blanche. Alors que pour mon application, j'avais une page me disant erreur 404 : Page non trouvée.
Ensuite, j'ai modifiée la balise "context" du fichier "META-INF/context.xml" de mon application et j'ai supprimé celle de "serveur.xml". Et là, j'me suis retouvée avec une page blanche aussi.
 
Bon, pour les fichier de log :
 
stderr.log :

Citation :

java.lang.NullPointerException
 at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:334)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427)


 
stdout.log :

Citation :

May 17, 2005 8:25:15 AM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
May 17, 2005 8:25:15 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1422 ms
May 17, 2005 8:25:15 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
May 17, 2005 8:25:15 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.0.28
May 17, 2005 8:25:15 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
May 17, 2005 8:25:15 AM org.apache.catalina.core.StandardHost getDeployer
INFO: Create Host deployer for direct deployment ( non-jmx )  
May 17, 2005 8:25:15 AM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
May 17, 2005 8:25:16 AM org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
May 17, 2005 8:25:16 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/50  config=C:\Program Files\Tomcat 5.0\conf\jk2.properties
May 17, 2005 8:25:16 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 651 ms


 
J'pense pas que ma solution se trouve dans les fichiers de log. J'ai regardais les autres et y a rien concernant le fichier "serveur.xml" ni le déploiement avec mon lecteur.
Y a pas moyen là, c'est pas faisable ça... Si je pouvais avoir le choix...

Reply

Marsh Posté le 17-05-2005 à 09:14:54    

Moi je te propose cela:
 
Organisation des dossiers:
 
RepApplication
     |_WEB-INF
          |_classes --> Appli.class
          |_src
 
dans le fichier server.xml, au-dessus des lignes qui définissent l'appli 'manager', tu ajoutes:
<Context path="/MonAppli" docBase="X:/RepApplication" />
 
Ensuite dans le web.xml de l'application tu fais ca:
<web-app>
  <servlet>
    <servlet-name>Exemple</servlet-name>
    <servlet-class> Appli</servlet-class>
  </servlet>
</web-app>
 
Puis tu relance TomCat tu  tape dans ton navigateur: http://localhost:8080/MonAppli/servlet/Appli
 
Je te promets rien, mais bon on sais jamais.

Reply

Marsh Posté le 17-05-2005 à 14:06:03    

le plus simple pour déclarer une web app c'est de créer un fichier xml dans le rep webapps de tomcat. Ce fichier contient la balise Context, de la même façon qu'on le retrouverait dans le server.xml, sauf que là y a pas besoin de modifier ce fichier de conf.
 
Je précise : le mieux est de ne mettre que le fichier xml de déclaration du context : les fichiers de l'application, eux peuvent se trouver ailleur.
 
exemple de fichier de conf de context :  


<Context  
   path="/toto"  
   reloadable="true"  
   docBase="D:\utils\eclipse-3.0.1\workspace\toto_project\www"  
   workDir="D:\utils\eclipse-3.0.1\workspace\toto_project\work\org\apache\jsp" >
 
   <Logger className="org.apache.catalina.logger.SystemOutLogger"  
       verbosity="4" timestamp="true"/>
</Context>


 
C'est le répertoire pointé par docBase qui doit contenir les fichiers de l'application (le WEB-INF/web.xml, et tout le reste ... le path c'est le prefix d'accès à la webapp depuis le browser (http://localhost:8080/toto/...), le reste est optionnel.
 
Autre avantage, quand on ne veut plus de la webapp, il suffit de renommer le fichier pour que tomcat ne le prenne plus en compte (perso je rajoute un .unused derrière associé à un icone qui indique que le fichier n'est pas actif). C'est très pratique.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed