J'ai une servlet déployée en tant que guerre dans JBoss 4.0.2. J'ai un fichier de propriétés pour l'application déployée. Où dois-je mettre ce fichier? Sous le répertoire conf dans le dossier jboss server \ default \ conf? Comment charger ce fichier de propriétés de manière portable?Charger le fichier de propriétés dans une servlet Java déployée dans JBoss en tant que guerre
Répondre
Pour charger ce fichier de propriétés dans un portable de manière, la meilleure façon serait de le mettre sur le chemin de classe de l'application Web (que ce soit dans un JAR sous WEB-INF/lib/
ou sous WEB-INF/classes/
ou sur le serveur d'application classpath si vous voulez pour être en mesure de modifier ce fichier sans reconditionner votre application Web) et d'utiliser Class#getResourceAsStream(String)
.
Le code suivant obtient un InputStream
pour un fichier de propriétés qui se trouve dans le même package que le servlet dans lequel le code est exécuté:
InputStream inStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("myfile.properties");
Ensuite, load(InputStream)
dans un objet Properties
(sauter la gestion des exceptions) :
Properties props = new Properties();
props.load(inStream);
Le meilleur endroit pour le mettre est sous le propre doc-racine web-apps, comme « ./WEB-INF/myapp.properties », à savoir par rapport à l'endroit où le conteneur de servlet déballer votre fichier .war
ou .ear
. Vous pouvez fournir le fichier de propriétés directement dans le .war
.
Le ServletContext
a une méthode getRealPath(String path)
qui renvoie le chemin réel dans le système de fichiers. En utilisant le chemin réel, vous pouvez le charger dans une collection Properties
.
Mise à jour Le code dans votre commentaire essaie de rechercher vrai chemin pour «/», vous devez demander le chemin relatif à votre fichier de propriétés, comme dans:
String propertiesFilePath = getServletContext().getRealPath("WEB-INF/application.properties");
Properties props = properties.load(new FileInputStream(propertiesFilePath));
J'ai donc essayé ce qui suit: Propriétés de chaîneFilePath = getServletContext(). GetRealPath ("/") + Fichier.separator + "WEB-INF" + Fichier.separator + "application.properties"; properties.load (nouveau FileInputStream (propertiesFilePath)); Je reçois une exception FileNotFoundException. Je ne vois pas ce que j'ai fait de mal. – Carlosfocker
Si le fichier de propriétés peut être déployé avec l'application en faire partie de votre arborescence source. Cela entraînera le fichier de propriétés à être dans le dossier WEB-INF/classes.
Cela peut ensuite être lu à l'aide
Properties properties = loadProperties("PropertyFileName.properties", this.getClass());
...
public static Properties loadProperties(String resourceName, Class cl) {
Properties properties = new Properties();
ClassLoader loader = cl.getClassLoader();
try {
InputStream in = loader.getResourceAsStream(resourceName);
if (in != null) {
properties.load(in);
}
} catch (IOException e) {
e.printStackTrace();
}
return properties;
}
Il suffit de mettre la main sur ServletContext puis
InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/log4j.properties");
Properties props = new Properties();
props.load(stream);
Cela fonctionnera toujours, que vous déployez une guerre ou la guerre a explosé.
- 1. Est-il possible d'utiliser DWR si la servlet DWR est déployée dans une guerre différente?
- 2. Charger le fichier de propriétés dans JAR?
- 3. Java: accès au fichier de propriétés à l'intérieur d'une guerre
- 4. Déploiement d'applications Web en tant que fichiers de guerre
- 5. Comment emballer une webapp en tant que guerre déployable?
- 6. Application EJB 3.1 déployée en tant que fichier WAR uniquement: qu'en est-il de ejb-jar.xml?
- 7. "Impossible de charger la classe de servlet dans le module spécifié" affiché lors de l'ajout de servlet au fichier war
- 8. Comment charger un fichier de propriétés dans Google App Engine?
- 9. Obtenir le nom du fichier war dans jboss
- 10. Dans une Java-webapp (guerre), comment puis-je utiliser HTTP-auth pour le contenu statique?
- 11. Charger la barre de progression Java Servlet?
- 12. Fichier de propriétés d'application Java
- 13. charger un contenu en tant que classe dans Actionscript 3.0?
- 14. accès printemps haricots d'un servlet dans JBoss
- 15. Java Servlet indique que le fichier n'existe pas
- 16. Exécution de la servlet Tomcat en tant que service Windows
- 17. maven: ajouter un fichier arbitraire en tant que ressource de contexte de servlet
- 18. Charger le fichier dans XAP
- 19. Une application Web JBoss déployée peut-elle simplement disparaître?
- 20. JBoss 4.x ne déploie pas le dossier src en guerre
- 21. Propriétés Python également en tant que propriétés de classe
- 22. Comment créer une servlet Java dans Eclipse?
- 23. Beans gérés en tant que propriétés gérées
- 24. JBoss 4.3 eap ne peut pas trouver la guerre dans une oreille
- 25. iText image dans le servlet java
- 26. Servir une vue en tant que fichier dans asp.net mvc
- 27. Propriétés récupérées en tant que propriétés d'une sous-classe NSManagedObject
- 28. Utilisation d'entités de caractères dans le fichier de propriétés Java
- 29. Fichier de propriétés Java dans Eclipse
- 30. Servlet Java en tant que proxy pour le serveur Web Apache
Le projet qui en a besoin a été annulé, donc je n'ai jamais suivi. – Carlosfocker