Comment accéder à un fichier de propriétés à l'aide de java à l'aide de Weblogic Server?
J'ai un fichier de propriétés .propriétés et je peux charger ce fichier en stand alone Classe Java comme ci-dessous:
Properties props = new Properties();
try {
FileInputStream fis =
new FileInputStream("D:\\Examples\\Simple\\src\\properties.xml");
props.loadFromXML(fis);
//props.list(System.out);
path = props.getProperty("path");
System.out.println("\nThe path property: "
+ props.getProperty("path"));
props.load(new FileInputStream(path));
filePath = props.getProperty("path");
System.out.println(filePath);
}
catch (IOException e) {
e.printStackTrace();
}
Maintenant, j'ai besoin de mettre en œuvre une logique qui peut me permettre de charger le fichier de propriétés à l'aide de Weblogic Server. Donc, fondamentalement, chaque fois que je change quelque chose dans .proprties fichier je n'ai pas besoin de construire à la demande à chaque fois et il peut être intégré avec le serveur. Je suis à l'aide de Jdeveloper et Weblogic Server 10.3. Comment puis-je configurer fichier de Propriété avec le serveur de base de java fichiers?
Pourquoi en serait-il différemment dans WebLogic? Le code Java est Java code.
pour le chargement de fichier de propriété, maintenant, je suis en utilisant Fileinput stream donc, si un jour je change l'emplacement du fichier de propriété ou peut-être j'ai changer le contenu de .fichier de propriétés de l'utilisation de FileInputStream n'est pas un bon moyen. Et bien sûr le code Java est java code mais il y aura moyen de le mettre .fichier de propriétés de configuration de Weblogic server afin que je puisse charger le fichier de propriétés lorsqu'il est intégré avec serveur Weblogic. Et je n'ai pas besoin de spécifier le chemin d'accès relatif.
pour le chargement de fichier de propriété, maintenant, je suis en utilisant Fileinput stream donc, si un jour je change l'emplacement du fichier de propriété ou peut-être j'ai changer le contenu de .fichier de propriétés de l'utilisation de FileInputStream n'est pas un bon moyen. Et bien sûr le code Java est java code mais il y aura moyen de le mettre .fichier de propriétés de configuration de Weblogic server afin que je puisse charger le fichier de propriétés lorsqu'il est intégré avec serveur Weblogic. Et je n'ai pas besoin de spécifier le chemin d'accès relatif.
OriginalL'auteur user1158401 | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
De votre site web-la logique de démarrage de fichier de lot ajouter en dessous de la ligne
ensemble JAVA_OPTIONS=%JAVA_OPTIONS% -DconfigFile=chemin-fichier
Dans votre programme java pour récupérer le fichier-chemin à l'aide de
Vous devrez redémarrer le serveur à chaque fois il y a une propriété de modification de fichier.
Comment voulez-vous commencer votre weblogic server ?.Vous devez être à l'aide de quelques commandes(.chauve-souris) de fichier, non ?
oui j'ai rendez-vous ici C:\Oracle\Middleware\user_projects\domains\SOA_Domain\startWebLogic.cmd et exécuter ce fichier . Tu veux dire le même que .fichier bat?
Éditez ce fichier et ajouter un jeu JAVA_OPTIONS=%JAVA_OPTIONS% -DconfigFile=chemin-fichier
OriginalL'auteur Shashank Kadne
Si vous allez strictement par la spec, vous ne pouvez pas charger des fichiers dans une application serveur. Vous devez la charger avec un chargeur de classe ou de mettre votre configuration dans une base de données.
Chargeur de classe
Le chargeur de classe est un utilitaire responsable du chargement du bytecode à partir de fichiers, url ou d'autres lieux dans la mémoire où la java runtime pouvez l'utiliser pour créer des classes. Le chargeur de classe est donc l'interface entre le java vm et un certain type de stockage. Les chargeurs de classe masquer les détails de la façon dont les ressources sont accessibles, ainsi vous avez la possibilité de charger les ressources indépendamment de savoir si ils sont dans un fichier ou dans d'autres lieux. Dans un serveur d'applications, java voudrais que vous ne supposez pas avoir un système de fichiers disponibles (vos classes peuvent venir de quelque part d'autre), et de la charge des ressources uniquement par le biais de chargeurs de classes.
Mais bien sûr, quelque part dans la pile, le chargeur de classe ne fait accéder au système de fichiers, donc la question est de savoir comment configurer cette connexion. C'est là que ça devient poilu, parce que dans un serveur d'application, il existe plusieurs chargeurs de classes (au moins un pour chaque application) et il n'est pas sûr de faire d'hypothèses sur la façon dont ils sont structurés. Il existe essentiellement deux options:
- vous typicalle votre demande emballés dans une guerre ou de l'oreille-un fichier qui contient des classes et le jar fichiers. Vous pouvez mettre votre .propriétés-fichier avec ces classes et de la charge à travers le "local" chargeur de classe ("local" entre guillemets, parce que ce n'est pas un vrai terme, et comme je l'ai dit, vous ne pouvez pas faire d'hypothèses ici).
- puisque cela signifie ré-emballage de votre war/ear-fichier chaque fois que vous voulez changer les paramètres, ce n'est pas vraiment beaucoup plus facile que de la re-construction de votre application. L'alternative est de faire de votre config-file disponibles à l'échelle du système, chargeur de classe définie au démarrage. Il est configuré par la variable d'environnement CLASSPATH (généralement dans la chauve-souris/cmd/sh-script en charge le démarrage de weblogic, comme mentionné par d'autres). Donc, ce que vous faire est de: créer un répertoire pour les fichiers de configuration, ajouter au CLASSPATH dans la startup-script, de la charge avec le code suivant (non testé):
vous pouvez charger les propriétés de ce flux d'entrée de la même manière que pour les fichiers.
Base de données
Encore plus robuste serait de stocker l'ensemble de votre configuration dans une base de données et chargement via une banque de données à l'aide de JDBC. Cependant, il n'est pas un défaut de l'API pour le chargement à partir d'une base de données dans une des Propriétés de l'objet, de sorte que vous devez faire vous-même.
Un design simple serait d'avoir une base de données-tableau comme ceci:
Le code pour l'analyse de ce dans une des propriétés de l'objet est laissé comme exercice au lecteur (je suppose que google peut vous dire si quelqu'un d'autre a fait quelque chose de similaire)
OriginalL'auteur Rolf Rander
Si vous voulez être en mesure de modifier l'emplacement du fichier sans avoir à recompiler l'application, puis l'externalisation de l'emplacement, par exemple, par le passage d'un système de propriété à la weblogic server:
Si vous voulez être en mesure de recharger le contenu du fichier au moment de l'exécution, sans avoir à redémarrer le serveur, puis lire le fichier à chaque fois que vous avez besoin pour accéder à l'une de ses propriétés (lent), ou l'utilisation d'Apache commons configuration, par exemple, qui peut recharger un fichier de propriétés lorsqu'elles changent.
OriginalL'auteur JB Nizet