一开始我的代码是这样子的,读取本地子路径下的json文件

代码运行的时候,在window是可以正常的

  @Override
public String getBannerStr() {
String str = "";
try { Resource resource = new ClassPathResource("json/abc.json");
File file = resource.getFile();
str = FileUtils.readFileToString(file, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("Json信息查询出错");
} return str;
}

但是实际上,工程是在Linux上面部署为jar包的

上面访问方式就出错了,这边一开始以为是获取资源文件的方式出问题了

后来试了几次,发现问题不是这样.

最后百度发现,在Linux中无法直接访问未经解压的文件,所以就会找不到文件。

所以只能使用流的方式对静态资源进行读取

下面是最后修改的代码

@Override
public String getBannerStr() {
String str = "";
try {
InputStream stream = getClass().getClassLoader().getResourceAsStream("json/abc.json"); BufferedReader br = new BufferedReader(new InputStreamReader(stream));
String s = "";
try {
while ((s = br.readLine()) != null) {
str = str + s;
}
} catch (IOException e) { e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
throw new BusinessException("Json信息查询出错");
} return str;
}

最新文章

  1. Swift-代理
  2. 安装Java的IDE Eclipse时出现java.net.SocketException,出现错误Installer failed,show.log
  3. Discuz插件开发中的困惑
  4. XMLHTTP中setRequestHeader方法和参数
  5. android应用保活机制
  6. ReactJS入门学习一
  7. 彻底理解数字图像处理中的卷积-以Sobel算子为例
  8. ruby面向对象class
  9. CRegKey 注册表操作
  10. contentSize、contentInset和contentOffset
  11. updating the chroot
  12. Android IPC机制全解析<二>
  13. 多线程工具类:CountDownLatch、CyclicBarrier、Semaphore、LockSupport
  14. Docker多主机管理(八)--技术流ken
  15. shell实例利用crontab自动清除日志
  16. 第25月第7天 聚宽 svm
  17. BZOJ2861 : 双向边定向为单向边
  18. Erlang process structure -- refc binary
  19. Java编写画图板程序细节-保存已画图形
  20. 20155235 2016-2017-2 《Java程序设计》第4周学习总结

热门文章

  1. Batch normalization简析
  2. HTML导航条的制作
  3. liunx pip安装
  4. phpstorm 习惯设置
  5. dropbear源码编译安装及AIDE软件监控
  6. 07_Redis_Sorted Set命令
  7. Linux搭建.net core CI/CD环境
  8. CentOS下更改yum源
  9. wmware虚拟化的启动问题
  10. MyBatis中的OGNL教程