comment faire pour récupérer le chemin root de mon application dans Tomcat à partir de ma Servlet ??
comment faire pour récupérer le chemin root de mon application dans Tomcat à partir de ma Servlet ??
pour récupperer en passant par le contexte, mais ce sera relatif.
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)
En revanche une chose dont on est sur c que le Root directory est /webapps
Donc par exemple si tu as:
webapps/monapplication
webapps/images
pour acceder à monimage.jpg ds /images tu dois faire ../images/monimage.jpg.
@+
j'ai du mal à comprendre mon erreur, car je fais:
et il m'affiche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 File fichierBidon = new File("../donnees/Data.txt"); out.println("path: " + fichierBidon.getAbsolutePath());
path: .../Tomcat/logs/donnees/Data.txt
alors que mes données sont dans
path: .../Tomcat/webapps/monprojet/donnees/Data.txt
donc je n'y comprend rien
voici le contenu de mon fichier localhost_monprojet_log.2004-04-27.txt:
si quelqu'un peut m'aider...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 2004-04-27 10:03:18 StandardWrapperValve[ServletAffichage]: "Servlet.service()" pour la servlet ServletAffichage a généré une exception java.io.FileNotFoundException: /usr/local/Tomcat/logs/donnees/Data.txt (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:106) at java.io.FileReader.<init>(FileReader.java:55) at projetsaga.ServletAffichage.doGet(ServletAffichage.java:49) at projetsaga.ServletAffichage.doPost(ServletAffichage.java:94) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.connector.warp.WarpRequestHandler.handle(Unknown Source) at org.apache.catalina.connector.warp.WarpConnection.run(Unknown Source) at java.lang.Thread.run(Thread.java:534)
Je comprends pas pk il te place ds /logs ?????
c'est quoi le StandardWrapperValve qui est mentionné dans mon fichier log ?
C'est une classe interne du conteneur de servlet.
C'est pas de la que vient le pb.
Tu as essayé de regarder les propriétés System de java concernant les répertoires .. Je ne sais plus si c'est java.dir ou quelque chose comme çà!
ca va lui donner le rep ou est installé le JDK !!! et apres ?????
La je vois pas ou tu veux en venir.
@+
sur les conseils de RandomX j'ai fais:
et du coup j'obtient le bon répertoire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 File fichierBidon = new File(this.getServletContext().getRealPath("") + "/" + "donnees/Data.txt"); out.println("path: " + fichierBidon.getAbsolutePath());
usr/local/Tomcat/webapps/monprojet/donnees/Data.txt
mais ça n'explique pas pourquoi je vais dans logs sans cette manip ??
Non je parlais d'une propriété qui donne le répertoire d'exécution de la JVM.
Je me suis probablement planté de propriété.
Je ne sais plus comme çà laquelle c'est ???
Désolé.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager