Comment voulez-vous créer des “Alias” dans Apache Tomcat?
Je suis en train de travailler sur une application web qui permet aux utilisateurs de télécharger les pièces jointes. Ces pièces jointes sont stockées sur un lecteur autre que celui de l'application web. Comment puis-je créer un alias (l'équivalent de du serveur HTTP Apache alias), ce disque de sorte que les utilisateurs peuvent télécharger ces pièces jointes?
Actuellement, je suis entrain de créer un fichier de contexte et de les déverser dans CATALINA_HOME/conf/Catalina/localhost, mais c'est au hasard supprimés chaque tellement souvent. Le fichier de contexte est nommé attachments.xml et le contenu sont présentés ci-dessous. J'ai aussi lu sur les hôtes virtuels, mais si je comprends bien, puis d'un hôte virtuel n'est pas ce que je recherche. Je suis l'aide de la version 6.0.18 de Apache Tomcat.
attachments.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase = "e:\uploads\attachments"
reloadable = "true"
crossContext = "true">
</Context>
OriginalL'auteur Dan Polites | 2008-12-08
Vous devez vous connecter pour publier un commentaire.
J'ai passé beaucoup plus de temps à la recherche de cette et trouvé une solution qui résout la suppression aléatoire du contexte fichiers. J'ai trouvé cet extrait sur le site web sous la section configuration de l'hôte:
Les hôtes virtuels sont stockés dans le server.xml fichier situé à CATALINA_HOME\conf. Tomcat est livré avec localhost d'hôte par défaut. Donc, si l'on ajoute le contenu de attachments.xml depuis le premier post, nous obtenons les suivantes:
C'est aussi proche que l'on peut obtenir à la définition d'alias similaire à Apache HTTP server, je pense.
Énorme merci pour cette. A été d'essayer de trouver une solution pour un+ 1 jours. Cela a fonctionné!
OriginalL'auteur Dan Polites
Il y a plusieurs options.
chacun a des avantages et des inconvénients et des avantages. Je préfère la première solution pour plusieurs raisons:
Sur le téléchargement de servlet:
De cette façon, vous auriez un servlet service de vos ressources statiques, qui vous peut se lier à l'url "/download/*" (par exemple, dans l'application qui gère également les téléchargements de fichiers) gain:
La troisième option a de graves inconvénients et vous ouvre à des attaques si vous ne prenez pas de soins particuliers:
<% System.exit(0); %>
ou plus du contenu malveillant.Une autre pensée: Vous n'avez pas besoin de l'appoint
crosscontext="true"
. Cela impliquerait que la webapplication que vous déployez pour bien servir vos fichiers a accès à d'autres applications, par exemple, est capable de les gérer ou d'accéder à leurs données privées. Habituellement, vous n'avez pas besoin que, dans le cas de votre question, vous ne voulez certainement pas que.OriginalL'auteur Olaf Kock
Voir la première partie de mon nouvelle question pour les moyens de le faire en modifiant le context.xml fichier
Comment puis-je ajouter des alias à un Contexte de Servlet java?.
Selon plusieurs personnes maintenant, il n'est plus nécessaire (2012: Tomcat 6 ou 7) pour l'utilisation d'Apache pour des raisons de performances sur Tomcat pour servir du contenu statique.
aliases="/shared=/[path to]/shared,/app1a=/[path to]/app1a"
OriginalL'auteur Paulus