案例:have和message appln将部署到JBOSS 6.1.1服务器。对于不同的环境,具有不同的队列名称。有什么办法让队列名称和详细信息从配置文件而不是队列名称中读取
在注释中进行硬编码
在ejb-jar.xml中定义
在jboss Standalone.xml中引用
问候,
Sucheta
最佳答案
您可以将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
文件