Message Driven Bean可以从属性文件中读取队列名称

时间:2014-07-11 11:42:18

标签: java ejb-3.0

案例:已将消息传递appln部署到JBOSS 6.1.1服务器。为不同的环境设置不同的队列名称。是否有任何方法可以从配置文件而不是Queuenames中读取队列名称和详细信息

  • 在注释中硬编码
  • 在ejb-jar.xml中定义
  • 在jboss Standalone.xml中引用

此致 Sucheta

1 个答案:

答案 0 :(得分: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文件