Question

Je travaille sur un site Web en cours d'exécution dans Tomcat qui stocke beaucoup de données membres, et je ne suis pas sûr de savoir comment mieux emballez.

Je veux être en mesure de déployer une guerre facilement sans avoir besoin d'enlever quoi que ce soit de ce premier.

Ma première pensée était de sortir les données membres dans son propre répertoire en dehors de la guerre, mais mon problème est que certains de ce contenu doit être lié dans le site (images, etc).

Il doit y avoir une meilleure solution que le déploiement d'une guerre, puis de copier les données. Quelqu'un at-il des suggestions?

Était-ce utile?

La solution

Votre première pensée était correcte. Le stockage des données en dehors direcotry est la meilleure solution. Vous pouvez facilement résoudre un problème en créant des images servlet qui accès à ce répertoire à l'extérieur sur demande d'image.

Je ne peux pas poster mon code, mais voici extrait similaire qui crée une réponse. Il vous suffit de créer la classe extension FileServlet et écrire du code pour charger le fichier depuis votre répertoire.

http://snippets.dzone.com/posts/show/4629

Ensuite, ajoutez à votre web.xml:

<servlet>
    <servlet-name>My File Servlet</servlet-name>
    <servlet-class>my.package.FileServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>My File Servlet</servlet-name>
    <url-pattern>/upload/*</url-pattern>
</servlet-mapping>

et chaque lien comme http://myapp.com/upload/userimage.jpg sera créé par servlet

Autres conseils

Vous devez certainement séparer vos données de votre application. Comme je ne suis pas sûr sur les raisons pour lesquelles vous aviez à l'origine pour mettre les données membres (apparemment des images et quelque chose d'autre) je peux offrir des suggestions basées sur un environnement plus idéal.

Si vous stockez des informations sur un grand nombre de personnes différentes et ont besoin d'y accéder à plusieurs endroits, pourquoi ne pas choisir d'utiliser une base de données? Peut-être même un libre comme PostgreSQL ou MySQL?

Si vous stockez vos données dans une base de données, il est facile de récupérer par java, utilisez un ORM comme Hibernate ou seulement quelques bibliothèques JDBC de base. Cela suppose que vous savez SQL et la couche de base de données en Java.

Ensuite, si vous avez besoin d'accéder à certains fichiers que vous pouvez créer un Architecture Orientée Services (SOA) et utiliser un service Web reposant pour tirer les images en fonction de l'URL. Cela permettrait le stockage à débarquée à une autre machine dans votre zone de confiance.

Il est difficile d'offrir une bonne solution sans plus de détails sur le problème et la configuration de votre serveur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top