2010-07-17 5 views
0

Je souhaite définir un chemin dans mon fichier web.xml relatif aux classes WEB-INF ou WEB-INF /.Définir le chemin dans web.xml par rapport à WEB-INF

Toutefois, le code suivant (repository.home) semble indiquer un chemin relatif au chemin d'accès c: root sur ma machine Windows ici.

<servlet> 
    <servlet-name>ContentRepository</servlet-name> 
    <servlet-class>org.apache.jackrabbit.servlet.jackrabbit.JackrabbitRepositoryServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
    <init-param> 
     <param-name>repository.home</param-name> 
     <param-value>/WEB-INF/classes/testit</param-value> 
    </init-param> 
</servlet> 

<servlet> 
    <servlet-name>JackrabbitServlet</servlet-name> 
    <servlet-class>com.orsa.seam.JackrabbitServlet</servlet-class> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

Répondre

1

Ce paramètre est OK, à savoir quand vous le lisez, il sera encore une chaîne avec la valeur:

/WEB-INF/classes/testit
Un paramètre dans le fichier web.xml est juste un paramètre - ce n'est pas un « chemin ». Donc, la question est ce que vous faites avec ce paramètre?

Puisque vous essayez d'accéder à des ressources (fichiers) à l'intérieur d'un conteneur de servlet, vous devez utiliser des méthodes spécifiques, par ex. quelque chose comme

ServletContext#getRealPath()

pour obtenir le vrai chemin de par exemple/WEB-INF/classes/testit, que

  • append à ce que vous avez besoin (donc ayant un chemin d'accès complet à ces fichiers dans ce répertoire), ou soustraient des autres « chemins complets », ayant ainsi la chemins relatifs à elle. Par exemple. Si vous avez '/testit/test1.txt' '/testit/test2.txt' vous pouvez accéder à ces fichiers en les ajoutant juste au chemin réel obtenu ci-dessus. Ou soustraire ce chemin d'autres 'chemins complets', ayant ainsi le chemin relatif à votre paramètre. Par exemple. Si vous avez le chemin d'accès complet (c: /tomcat/webapps/myapp/WEB-INF/data/testit/test.txt), il vous suffit de soustraire ce chemin complet de votre paramètre, vous obtiendrez ainsi le chemin relatif: '/testit/test2.txt'

Questions connexes