Может ли управляемый сообщениями компонент читать имена очередей из файла свойств

1

Случай. Устройства для обмена сообщениями и обмена сообщениями будут развернуты на сервере JBOSS 6.1.1. Имеют разные имена очередей для разных сред. Есть ли способ иметь имена очередей и данные, прочитанные из файла конфигурации вместо Queuenames

  • Жесткий код в аннотации
  • Определено в ejb-jar.xml
  • Ссылаясь на jboss Standalone.xml

С уважением, Сухета

Теги:
ejb-3.0

1 ответ

0

Вы можете поместить файл properties в корень вашего сервера. Получите доступ к нему в FileInputStream и установите его в своем классе MDB. создать класс singleton и прочитать свойства этого класса:

public class EnvironmentProperties {

    private static final EnvironmentProperties INSTANCE = new EnvironmentProperties();

    private Properties props = null;
    private Log log = LogFactory.getLog(EnvironmentProperties.class);

    private EnvironmentProperties() {
        loadProperties();
    }

    public static EnvironmentProperties getInstance() {
        return INSTANCE;
    }

    public String getJmsName() {
        return props.getProperty("jms.name");
    }

    public String getJmsQueue() {
        return props.getProperty("jms.queue");
    }

    private Object readResolve() {
        return INSTANCE;
    }

    private Properties loadProperties() {
        props = new Properties();
        try {
            String filePath = new File("./config.properties").getCanonicalPath();
            FileInputStream fis = new FileInputStream(filePath);           
            props.load(fis);
            fis.close();            
        } catch (FileNotFoundException e) {
            log.error(e.getMessage(),  e);
        } catch (IOException e) {
            log.error(e.getMessage(),  e);
        }
        return props;
    }

}

получить доступ к имени jms/queue: EnvironmentProperties.getInstance().getJmsName();

Убедитесь, что файл properties существует на всех ваших серверах

Ещё вопросы

Сообщество Overcoder
Наверх
Меню