Подтвердить что ты не робот

Использование внешних файлов свойств в weblogic

Я работаю над развертыванием приложения J2ee, которое я ранее развертывал в JBOSS в Weblogic 10.3.1.0. Я сталкиваюсь с проблемой с внешними файлами свойств. В Jboss я могу просто поместить файлы свойств в $JBOSS_HOME/server/default/conf, и они загружаются в путь к системе, и я могу получить к ним доступ без каких-либо проблем. Я смог поместить разделяемые библиотеки в $MIDDLEWAREHOME/user_projects/domains/mydomain/lib, и они были без проблем загружены в системный путь класса, но я не могу загрузить файлы свойств.

Кто-нибудь знает, как включать внешние файлы свойств в Weblogic?

Спасибо,

4b9b3361

Ответ 1

Я понял это и работаю так, как я ожидал. Сначала я попробовал предложения, как указано выше. Если я добавил папку в свой путь к классам или поместил файлы свойств в папку на моем пути к классам, банки в файле были отобраны, но не были бы файлами свойств. Если я поместил свои файлы свойств в банку и поместил их в папку на моем пути к классам, все сработало. Но я не хотел иметь jar мои файлы каждый раз, когда было сделано изменение. Следующие работы в моем env.

Если я поместил файлы свойств в% WEBLOGIC_HOME%/user_projects/domains/MYDOMAIN, тогда они получаются, не помещая их в файл jar.

Ответ 2

В блоках weblogic будут загружены из библиотеки lib, а файлы non jar будут загружены из папки домена

Ответ 3

Вы можете посмотреть ваши setDomainEnv.cmd (Windows) или setDomainEnv.sh (Unix/Linux) script в своих файлах домена и посмотреть, какие местоположения добавлены в CLASSPATH для вашего домена. Затем просто выберите одну папку и поместите туда файл свойств, если вы хотите, чтобы определенное место для вашего файла свойств просто редактировало script.

Ответ 4

Есть способы прочитать файл свойств в Java из пути к классу weblogic

Один (файл свойств, расположенный в домене weblogic): отбросьте файл свойств внутри каталога домена. Таким образом, файл свойств автоматически добавляется в путь класса weblogic, и мы можем читать с Java с помощью resourceAsStream.

Два (файл свойств из определяемого пользователем местоположения): Преимущество этого подхода состоит в том, что файл свойств может находиться вне файла JAR или EAR и может быть изменен удобно.

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();

}

}
}

В weblogic setDomainEnv (под bin) нам нужно передать местоположение файла свойства в качестве аргумента -D для JAVA_OPTIONS

установить JAVA_OPTIONS =% JAVA_OPTIONS% -DpropFileLocation =/dev/file/properties/some.properties

Надеюсь, это поможет!

Ответ 5

Хотя это может быть немного дополнительным усилием, если вы поместите файлы в JAR, прежде чем отбрасывать их в каталог lib, который должен работать.

Ответ 6

Вы можете установить каталог в пути к классам и поместить свой файл настраиваемых свойств в этот каталог/каталог. Таким образом, весь каталог вместе с файлом свойств будет находиться в classpath. Чтобы установить каталог в пути к классам в weblogic 10.3.x

  • Создайте папку в папке %DOMAIN_HOME%\config\. пример appConfig.
  • Поместите свой файл свойств (Let say config.properties) в каталог appConfig.
  • Измените setDomainEnv.cmd (Windows), чтобы включить appConfig в путь к классам, установив %DOMAIN_HOME%\config\appConfig как значение EXT_POST_CLASSPATH (эта переменная уже определена в файле setDomainEnv.cmd), как показано ниже:

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

Вы можете получить доступ к этому файлу в вашем java-коде, как показано ниже:

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

Надеюсь, что это поможет.

Ответ 8

Это было мое решение:

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());
        }