2014-07-11 1 views
1

Дело: приложение для обмена сообщениями и обмена сообщениями будет развернуто на сервере JBOSS 6.1.1. Имеют разные имена очередей для разных сред. Есть ли способ, чтобы иметь имена очереди и детали считываются из файла конфигурации вместо QueuenamesCan Message Driven Bean считывает имена очередей из файла свойств

  • Hard закодированы в аннотации
  • Определено в EJB-jar.xml
  • Обращаясь в JBoss Standalone.xml

с уважением, Sucheta

ответ

0

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

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/имя очереди: EnvironmentProperties.getInstance().getJmsName();

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