wake-up-neo.com

Verwenden externer Eigenschaftendateien in Weblogic

Ich arbeite an der Bereitstellung einer J2ee-Anwendung, die ich zuvor in JBOSS in Weblogic 10.3.1.0 bereitgestellt habe. Ich habe ein Problem mit externen Eigenschaftendateien. In Jboss kann ich die Eigenschaftendateien einfach in $ JBOSS_HOME/server/default/conf ablegen, und sie werden in den Systemklassenpfad geladen, und ich kann problemlos darauf zugreifen. Ich konnte gemeinsam genutzte Bibliotheken in $ MIDDLEWAREHOME/user_projects/domains/mydomain/lib ablegen und sie wurden ohne Probleme in den Systemklassenpfad geladen, aber ich kann keine Eigenschaftendateien laden.

Weiß jemand, wie externe Eigenschaftendateien in Weblogic eingeschlossen werden?

Vielen Dank,

16
broschb

Ich habe das herausgefunden und es funktioniert so, wie ich es erwarten würde. Zuerst habe ich die Vorschläge wie oben ausprobiert. Wenn ich meinem Klassenpfad einen Ordner hinzufügte oder die Eigenschaftendateien in einen Ordner in meinem Klassenpfad legte, wurden die Gläser in der Datei aufgenommen, aber keine Eigenschaftendateien. Wenn ich meine Eigenschaftendateien in ein Glas lege und sie in einen Ordner auf meinem Klassenpfad lege, hat alles funktioniert. Aber ich wollte nicht, dass meine Dateien bei jeder Änderung in ein Glas gegeben werden. Die folgenden Arbeiten in meinem env.

Wenn ich die Eigenschaftendateien in% WEBLOGIC_HOME%/user_projects/domains/MYDOMAIN platziere, werden sie abgeholt, ohne dass sie in eine JAR-Datei gestellt werden müssen.

14
broschb

Es gibt Möglichkeiten, die Eigenschaftendatei in Java aus dem Weblogic-Klassenpfad zu lesen

Eins (Eigenschaftendatei in der Weblogic-Domäne): Legen Sie die Eigenschaftendatei im Domänenverzeichnis ab. Auf diese Weise wird die Eigenschaftendatei automatisch zum Weblogic-Klassenpfad hinzugefügt und wir können mit resourceAsStream aus Java lesen.

Zwei (Eigenschaftendatei von einem benutzerdefinierten Speicherort): Der Vorteil dieses Ansatzes besteht darin, dass sich die Eigenschaftendatei außerhalb der JAR- oder EAR-Datei befinden und bequem geändert werden kann.

package com.test;
import Java.io.FileNotFoundException;
import Java.io.IOException;
import Java.io.InputStream;
import Java.util.Properties;

public class PropertyFileExample {

private static Properties prop;

public static void myMethod() {

InputStream is = null;

try {

prop = new Properties();

String propFilePath = System.getProperty(“propFileLocation“);

InputStream iStream =     PropertyFileExample.class.getClassLoader().getResourceAsStream(propFilePath);

//Note that the propFilePath is a -Dparam defined below in the setDomainEnv
prop.load(iStream);
prop.getProperty(“dbuser”);

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}
}

In der Weblogik setDomainEnv (unter bin) müssen wir den Speicherort der Eigenschaftendatei als -D-Argument an Java_OPTIONS übergeben

setzen Sie Java_OPTIONS =% Java_OPTIONS% -DpropFileLocation =/dev/file/properties/some.properties

Hoffe das hilft!

2
Rahul Thotakura

In Weblogic werden JAR-Dateien aus der Bibliothek und die Nicht-JAR-Dateien aus dem Domänenordner geladen

2
suresh

Sie können ein Verzeichnis im Klassenpfad festlegen und Ihre benutzerdefinierte Eigenschaftendatei in diesem Ordner/Verzeichnis ablegen. Damit befindet sich das gesamte Verzeichnis zusammen mit der Eigenschaftendatei im Klassenpfad. So legen Sie das Verzeichnis im Klassenpfad in Weblogic 10.3.x fest

  • Erstellen Sie einen Ordner im Ordner %DOMAIN_HOME%\config\. Beispiel appConfig.
  • Platzieren Sie Ihre benutzerdefinierte Eigenschaftendatei (zum Beispiel config.properties) im Verzeichnis/Ordner appConfig.
  • Ändern Sie den setDomainEnv.cmd (Windows), um appConfig in den Klassenpfad aufzunehmen, indem Sie %DOMAIN_HOME%\config\appConfig als Wert auf EXT_POST_CLASSPATH setzen (diese Variable ist bereits in der setDomainEnv.cmd-Datei definiert).

    set EXT_POST_CLASSPATH=%EXT_POST_CLASSPATH%;%DOMAIN_HOME%\config\appConfig
    

Sie können auf diese Datei in Ihrem Java-Code wie folgt zugreifen:

    InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream ("config.properties");
    Properties prop = new Properties();
    prop.load(inputStream);
    String value = prop.getProperty("key");

Hoffe das hilft.

1
net user

Obwohl es ein wenig aufwändig sein kann, sollte dies funktionieren, wenn Sie die Dateien in eine JAR-Datei kopieren, bevor Sie sie in das Verzeichnis lib ablegen.

0
Adam Batkin

Sie können Ihr setDomainEnv.cmd (Windows) - oder setDomainEnv.sh (Unix/Linux) -Skript in Ihren Domänendateien einsehen und feststellen, welche Speicherorte in der KLASSE für Ihre Domäne hinzugefügt wurden. Wählen Sie dann einfach einen Ordner aus und platzieren Sie die Eigenschaftendatei dort. Wenn Sie einen bestimmten Speicherort für Ihre Eigenschaftendatei wünschen, bearbeiten Sie einfach das Skript.

0
victor hugo

das war meine lösung:

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        InputStream is = null;

        String urlExte = System.getenv("DOMAIN_HOME")+"/properties/SmsBalanceadoWS/";


        org.springframework.core.io.Resource resource = ctx.getResource( "file:"+urlExte+"/application.properties");
        try {
            is = resource.getInputStream();
        } catch (IOException e) {
            LOGGER.debug("ERROR"+ e.getMessage());
        }
0
user2522715

Die flexibelste Möglichkeit ist die Verwendung von Weblogic-Bereitstellungsplänen und Überschreibungen beim Laden generischer Dateien

Externe Eigenschaftendatei mit Weblogic

http://docs.Oracle.com/cd/E21764_01/web.1111/e13702/config.htm#DEPGD188

0
Kalpesh Soni