Comment utiliser un fichier de propriétés avec GlassFish
Je suis de la création d'un service web, qui courent dans GlassFish, et je veux avoir certaines propriétés personnalisées. Pour cela, je suis en utilisant le Properties
classe. Le code que j'utilise est:
Properties p=new Properties();
File f=new File(System.getProperty("user.dir"), "settings.properties");
p.load(new FileInputStream(f));
Mais comment puis-je obtenir le settings.properties
-fichier dans mon répertoire config?
Je ne suis pas sûr de mon classpath, puisque c'est géré par NetBeans et GlassFish. Je suppose que mon .war
-fichier est ajouté au classpath, lors du déploiement...
J'ai ajouté ma propre solution, mais si quelqu'un pouvait trouver une meilleure solution, il serait bienvenue...
source d'informationauteur doekman
Vous devez vous connecter pour publier un commentaire.
Placer vos fichiers de propriété dans le <glassfish-install-dir>/glassfish/domains/<nom de domaine>/lib/classes répertoire et ils seront accessibles à partir de vos applications via le ResourceBundle classe. Par exemple, ajouter une propriété de fichier nommé paramètres.propriétés à ce répertoire et les valeurs de l'accès à partir du fichier comme ceci:
La solution qui fonctionne est assez simple:
Pourquoi n'est pas quelqu'un de venir avec cette?
Alternatives:
Selon configuration de votre domaine, vous pourriez être en mesure d'utiliser
asadmin create-system-properties
à partir de la ligne de commande. Exécuter/voirasadmin create-system-properties --help
pour plus d'info.Ou vous pourriez administrer les propriétés du système par le biais de l'interface d'administration de Glassfish. Voici le lien par défaut: http://localhost:4848/configuration/systemProperties.jsf?configName=server-config
Voir ici pour la façon dont vous pouvez lire un fichier de propriétés à partir de votre classpath:
Vous suffit alors d'ajouter à votre répertoire config du classpath.
Si vous avez des problèmes en utilisant le code ci-dessus, essayez ServletContext.getResource.
J'en ai essayé beaucoup, mais j'ai résolu ce problème avec:
Je dois passer le ServletContext à partir d'une jsp-page avec un appel à
getServletContext()getServletContext()
. Pas idéal, mais c'est la seule façon que je pouvais le faire fonctionner...Ce serait sympa si quelqu'un pouvait trouver une autre solution, qui pourrait withyout la
ServletContext
.+1 pour la mettre dans votre classpath.
Si vous êtes à l'aide de Printemps (et je vous conseille de vous faire si vous n'êtes pas déjà pour de nombreuses raisons) quand vous pouvez charger un fichier de propriétés comme ceci:
et de mettre les références dans votre contexte d'application comme:
(en supposant que vous avez configuré la propriété configurateur) et qu'il va provoquer une erreur si le fichier ne peut pas être chargé ou la propriété n'existe pas. L'application ne pourra pas démarrer. C'est effectivement une bonne chose. Il vous permet de trouver des problèmes vraiment vraiment vite et beaucoup mieux que de ne pas en silence, ce qui peut parfois avoir des effets catastrophiques.
Copie de votre fichier de propriétés pour le web/WEB-INF/classes chemin
Être conscient que vous avez à fermer la InputStream. Autrement, vous obtiendrez une exception socketexception tôt ou tard.
Chargement Des Propriétés