Использование внешних файлов свойств в weblogic - PullRequest
17 голосов
/ 07 августа 2009

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

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

Спасибо

Ответы [ 8 ]

14 голосов
/ 12 августа 2009

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

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

2 голосов
/ 26 марта 2014

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

Один (файл свойств, расположенный в домене 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 argument в JAVA_OPTIONS

set JAVA_OPTIONS=%JAVA_OPTIONS% -DpropFileLocation =/dev/file/properties/some.properties
2 голосов
/ 18 февраля 2013

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

1 голос
/ 11 апреля 2015

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

  • Создать папку в папке %DOMAIN_HOME%\config\. пример appConfig.
  • Поместите файл пользовательских свойств (скажем, 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");

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

0 голосов
/ 21 ноября 2017

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

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 голосов
/ 07 марта 2017

Самый гибкий способ - использовать планы развертывания weblogic и общие переопределения загрузки файлов

Файл внешних свойств с Weblogic

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

0 голосов
/ 07 августа 2009

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

0 голосов
/ 07 августа 2009

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

...