项目

一般

简介

V9部署应用加载不到json数据

由 吕 鹏钦 在 超过 2 年 之前添加

问题描述:客户现场部署应用之后发现应用模块中有一个为page.json的文件读取不到,在tomcat上面是可以正常读取的

问题排查:客户本地虚拟机环境为中科方德+海光,部署应用后可以正常访问,现场是银河麒麟+飞腾2000,经远程检查发现page.json文件位于应用中名为       attribute的目录下,并且这个目录下的所有.json文件都不可以读取到,与attribute同级的目录就可以。正常读取的json数据如下图:

初步排查考虑到环境不同,让客户询问操作系统是否对文件有读取限制,询问操作系统厂商发现并没有。然后找现场实施要了读取不到的文件自己本地做了个demo测试了一下,发现是可以访问的。

测试环境他使用银河麒麟操作系统就会有问题,于是我这边远程debug帮他调试,发现如下问题:

 

此问题定位到出自dreamit-core.jar里面的StringUtil工具类,对静态资源的处理是有问题的。询问研发我们的web容器对静态资源的处理跟应用框架对静态资源的处理的区别:

 

最后定位到问题是应用使用自己的类加载器对资源路径做了处理,使用的是相对路径,AASV9有自己的处理静态资源的机制,导致资源路径与真实文件匹配不上,所以获取不到json数据,引入研发那边提供的load.jar放入sp目录优先加载,问题得到解决。