java利用ClassLoader载入配置文件的深入研究

在实践当中利用ClassLoader.getSystemClassLoader().getResource()来读取配置文件时,单元测试时ok,
但把项目部署到jboss-4.2.1.GA服务器后,却莫明奇妙的发现初始化配置异常null. 反复琢磨后才发现原因是:
Eclipse单元测试时ClassLoader.是Eclipse的,而部署后ClassLoader.则是jboss-4.2.1.GA服务器的,部署的项目只是内部级的,配置文件不是公共环境类路径。
具体解决方案源码:
package  com.web.common.utility.configs;

import  java.io.FileInputStream;
import  java.io.Serializable;
import  java.net.URL;
import  java.util.Properties;

import  org.apache.log4j.Logger;

/**   
 * @comany 阿斯达克(上海)深圳分公司    
 * 
@author steven.wu
 * @date 2008-4-28
 * @description 读取配置文件
 
*/

public   class  CacheEngineConfig  implements  Serializable  {
    
private static final Logger log = Logger.getLogger(CacheEngineConfig.class);
    
private static Properties prop;
    
static{
        FileInputStream fis
=null;
        
try{
            URL configURL
=new CacheEngineConfig().getClass().getClassLoader().getResource("com/web/common/utility/configs/webconfig.properties");
            fis
=new FileInputStream(configURL.getFile());
            prop
=new Properties();
            prop.load(fis);
            log.info(
"读取配置文件成功.");
        }
catch(Exception e){
            log.info(
"读取配置文件异常:"+e.getMessage());
        }
finally{
            
try {
                
if( fis!=null{
                    fis.close();
                }

            }
 catch (java.io.IOException ioe) {
                log.info(
"关闭配置文件(webconfig.properties)有误:" + ioe.getMessage());
                ioe.printStackTrace();
            }

        }

    }

    
public static Properties getProp() {
        
return prop;
    }

    
public static void setProp(Properties prop) {
        CacheEngineConfig.prop 
= prop;
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值