J'ai créé un Voici la structure p> jar code> de mon
Java Project CODE> et voulait utiliser le même pot dans un projet de servlet
JSP code>. J'essaie de charger un fichier de propriété, laissez SOIT SAMPLE.PROPERTES à partir de mon
JSP Servlet Project Code> conservé dans
Web / Propriétés / Sample.Properties code> qui devrait être lu par une classe in Le
JAR CODE> code>.
S'il vous plaît suggérer moi la solution. P>
5 Réponses :
essayer de mettre des exemples.Properties sous src code> dossier, puis
Essayez ceci,
Properties props = new Properties(); props.load(inStream);
J'ai essayé cela, mais cela n'a pas fonctionné. Cela jette la même exception.
Ne doit-il pas être Web-Inf / Propriétés / Sample.Properties Code> au lieu de
/web-inf/properties/sample.properties code>?
Ajoutez votre fichier de propriétés dans le fichier JAR d'où vous essayez d'accéder au fichier, c'est-à-dire. Projet qui est dans le fichier jar.or Placez l'échantillon.properties en C: / D: ou quelque part ailleurs et donnez un chemin complet, par exemple C: /Sample.properties.
Déplacez vos fichiers de propriétés sous Vous pouvez le mettre en sous-répertoire sous Pour être plus sûr dans le système multi-classier, vous pouvez utiliser Pour effectuer le fichier de propriétés pour arriver à Web-Inf / Classes Code>. Puis chargez-le comme suit: p>
prop.load (getclass (). GetResourceastream ("échantillon.properties")); code> p>
classes code> aussi. Dans ce cas, changez l'appel à
getresourceastream () code> en conséquence. P>
thread.getContextClassloader (). getresourceastream () code> à la place. p>
classes code> de votre fichier de guerre, vous devez le mettre sous
Ressources code> dans votre projet (si vous utilisez Maven) ou Just Sous
SRC CODE> Dossier Si vous n'utilisez pas de structure de répertoire de type Maven. p>
Je l'ai fait en utilisant introuvable instrumentstream = thread.currentThread (). GetContextClassloader (). GetResourceas flux ("../ Propertie S / DBDétails.Properti ES"); Prop.load (instruit) code>
Le dossier À condition que le fichier de propriétés soit vraiment là où vous souhaitez le conserver, vous devriez l'obtenir en tant que ressource de contenu Web par supposant que vous êtes à l'intérieur d'un (le mais si la classe est en soi pas un / web-inf code> est
Classloader # GetResourceastream () Code>
JAMAIS STRUT> TRAVAIL. Il ne fonctionnerait que si le fichier de propriétés est placé dans / web-inf / classes code> qui fait effectivement une partie de la classe de classe (dans une ECLIPSE comme Eclipse, il suffit de la placer dans la racine de dossiers de la source Java devrait être suffisante. ).
servletContext # getresourceastream () code>
à la place. P> httpservlet code>, cela devrait faire: p>
getServletContext () < / code> est hérité de la superclasse de servlet, vous n'avez pas besoin de la mettre en oeuvre vous-même; de sorte que le code est tel quel) em> p>
HttpServlet code> du tout, vous devez alors déplacer le fichier de propriétés dans la classe de classe. P>
Voir aussi: h3>
Toutes les bonnes réponses - le défenseur du diable à travers; Si vous envisagez de stocker des informations sensibles dans ledit fichier de propriétés (E.G. Nom d'utilisateur / mot de passe / mot de passe / clé secrète, etc.), il ne faut probablement pas être dans votre base de code; Comme dans ce cas, il sera sous contrôle de version - ce qui est juste une autre façon pour les gens d'obtenir une prise de vos informations; Dans ce cas le stocke en dehors de votre racine de votre document
Il peut ne pas fonctionner si vous essayez de charger les propriétés de JSP / servlet. Écrivez une classe d'utilitaire pour lire les propriétés et l'emballage avec le fichier JAR. Copiez le fichier de propriétés dans le même package qu'à l'utilitaire.
Class Utility{ Properties properties=null; public void load() throws IOException{ properties.load(getClass().getResourceAsStream("sample.properties")); } public Object get(String key) throws IOException{ if (properties==null){ load(); } return properties.get(key); } }
Vérifiez Stackoverflow.com/Questtions/2161054/...