2013-07-16 1 views
1

Dans mon état actuel du pom.xml i ontTomcat 7 Maven Plugin multiple contexte

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
    <path>/myPath</path> 
    </configuration> 
</plugin> 

cela fonctionne très bien. J'essaie maintenant d'ajouter un contexte supplémentaire pour les images sur le serveur, de sorte que le «vieux» contexte dirige vers la webapp et /images peut être utilisé pour adresser des images.
J'ai essayé d'ajouter un fichier de contexte, mais quand je le fais, seul mon contexte /images est chargé.
Aussi, je ne veux pas construire la guerre à chaque fois (ce serait le cas si j'ai utilisé deux fichiers context.xml pour les deux contextes)

Est-il possible d'ajouter a) le contexte tel qu'il est (l'état actuel du développement en utilisant tomcat7: exécuter ET b) le second contexte/images qui pointe uniquement vers un dossier local? Et comment?

+0

[répondu ici] (http://stackoverflow.com/a/10059792/978502) – yair

Répondre

2

Bien qu'il soit answered here, pensé qu'il serait bon de poster comment le xml devrait ressembler à:

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
    <path>/myPath</path> 
    <staticContextPath>/images</staticContextPath> 
    </configuration> 
</plugin> 

L'autre réponse utilise staticContextDocbase au lieu de staticContextPath, et je ne peux pas dire la différence entre les deux , mais l'un d'entre eux devrait fonctionner. N'a pas essayé moi-même, bien;)


doc de Tomcat de ces deux propriétés:

staticContextDocbase:

La base de docroot contexte statique chemin complet

staticContextPath:

Le contexte statique

Peut-être que fully qualified path est en contraste avec un chemin relatif.


Eh bien, je fouillais un peu dans le plug-in et le code d'Apache et a constaté que vous avez besoin à la fois staticContextDocbase et staticContextPath.

staticContextDocbase est le chemin à partir duquel le contexte statique doit être récupéré par Tomcat. Dans votre cas, il s'agit de C:/images.

staticContextPath est la partie de l'URL après le http://<hostname>:<port> pour laquelle le contexte statique doit être envoyé au client. Dans votre cas, il s'agit du /images.

Maven doit être configuré comme ceci:

<plugin> 
    <groupId>org.apache.tomcat.maven</groupId> 
    <artifactId>tomcat7-maven-plugin</artifactId> 
    <version>2.0</version> 
    <configuration> 
    <path>/myPath</path> 
    <staticContextPath>/images</staticContextPath> 
    <staticContextDocbase>C:/images</staticContextDocbase> 
    </configuration> 
</plugin> 

Une autre note:

As seen here, le plugin utilise Tomcat.addContext(String contextPath, String baseDir), staticContextPath est passé comme contextPath et staticContextDocbase est passé comme baseDir. Le document pour baseDir indique qu'il est Must exist, relative to the server home.

OTOH, que baseDir est déplacé tel quel à Context.setBaseDir(String docBase). Le document sur que la méthode pour baseDir indique que This can be an absolute pathname, a relative pathname, or a URL..

Essayez alors le chemin complet. Si cela ne fonctionne pas, allez pour le parent;).

+0

alors comment puis-je lier un dossier local au chemin statique alors? –

+0

@MatthiasG Qu'appelez-vous 'dossier local'? – yair

+0

Je voudrais que mon contexte (/ myPath) pointe vers le webapp im en développement et localhost: 8080/images pointent vers C: \ data \ images –

Questions connexes