Um Fremdsysteme wie DB-URLs und LDAP-URLS usw zu konfigurienen sollte man die Konfiguration in ein Property-File auslagern. Wie kann ich denn meine Config ausserhalb vom WAR-File lagern und anziehen?
Properties-Datei per File nachladen, oder besser, über JNDI die Datasources und Co ansprechen, die man dann hoffentlich im Endsystem separat deployen kann.
Du kannst eine Properties-Datei in jBoss z.b. ins Data-Verzeichniss deployen. In jBoss hat man folgende als Beispiel Möglichkeit auf das Data-Verzeichnis zu kommen:
In Tomcat gibt es die Möglichkeit das BaseDir-abzufragen, daraus kannst Du dann einen ermitteln, der zu dieser Datei in deiner Anwendung führt.
Properties einzuladen ist simpel:
Java:
InputStream is =...Properties p =newProperties();
p.load(is);
Aber wie gesagt, bei Datenbankverbindungen würde ich mit DataSources und JNDI arbeiten. Diese kannst Du in Tomcat/jBoss sehr einfach separat konfigurieren.
File f wäre das erzeugte File-Objekt, das Du Dir entsprechend dem Standort Deiner Properties-Datei erzeugen mußt.
Java:
File f =newFile("./conf/myprops.properties");// einfaches relatives Beispiel//File f = new File(sc.getServerDataDir().getAbsolutePath(), "myprops.properties"); // einfaches jBoss-BeispielInputStream is =null;Properties p =newProperties();try{
is =newFileInputStream(f);
p.load(is);// System.getProperties().putAll(p); // Beispiel um die Props als Systemprops anzulegen}catch(IOException e){throw e;}finally{if(is !=null){
is.close();}}