前几天一个项目,需要用到fastdfs来处理文件,但是找了半天没找到写在properties文件里的方法,就打算直接用fastdfs现成的配置文件
起了个名字,丢进resources下面,看起来一切正常,本地跑也完全没有问题:
然后jenkins编译打包,放到线上,跑了一下,发现jenkins跑不过?报错,文件未找到!
上网查资料,告知是因为达成jar包之后,文件路径获取不到,拿不到指定文件也是正常的,接下来就是找解决方案的时候,网上大多是使用文件流的方式,但是我使用这种方式还是拿不到,希望有大佬可以告知究竟是什么问题,后面就换了一种方式处理,上图:
然后在需要调用到这个配置文件的位置,直接写properties文件里面配的参数,这里是fdfs.client.conf,具体看图:
使用value注入,在配置文件里直接拿到文件,这样一来就不会有配置文件拿不到的情况了。
public LinkedQueueTrackerPool(String clientConfigPath, int poolSize,boolean jarFastdfs)
throws FileNotFoundException, IOException, MyException,
InterruptedException, URISyntaxException {
super();
this.poolSize = poolSize;
if(!jarFastdfs){//非jar发布
ClassPathResource cpr = new ClassPathResource(clientConfigPath);
ClientGlobal.init(cpr.getClassLoader().getResource(clientConfigPath).toURI().getPath());
}else{
ClientGlobal.init(clientConfigPath);
}
init();
}
配置线程池,直接拿到配置文件,放进init里解析,搞定。
版权声明:本文为weixin_44240612原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。