关于配置文件、linux区别于windows获取地址的BUG
程序员文章站
2022-04-11 10:58:25
...
今天将一个面向配置编程的项目发布到linux服务器上时,发现了两个区别与windows服务器的BUG:
【BUG1】:读配置文件失败,但是后台打出的配置文件信息是正确的。
经过插桩测试获得报错信息:
org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {
【原因分析】 由于配置文件保存时,在前边带有乱码,所以在读取配置文件时是正常的,但在解析时就会报错:具体参看xiechengfa的博客:-->http://blog.csdn.net/xiechengfa/article/details/45559223
【解决方案】用EditPlus打开配置文件,并另存为utf-8格式。为什么使用EditPlus而不是记事本呢?这个问题我之前遇到过,貌似记事本在开始的地方会有关于编码的信息神马的。。(一时给忘了,啥时候找到了再来补上。)
【BUG2】linux系统下:
String path=request.getSession().getServletContext().getRealPath("/");
这种方式下获取路径失败。。
【原因分析】未分析。
【解决方案】通过类加载器获取。
String path=this.getClass().getClassLoader().getResource("/").getPath();
path = path.replaceAll("WEB-INF/classes", ""); //JavaWeb中
【BUG1】:读配置文件失败,但是后台打出的配置文件信息是正确的。
经过插桩测试获得报错信息:
org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {
【原因分析】 由于配置文件保存时,在前边带有乱码,所以在读取配置文件时是正常的,但在解析时就会报错:具体参看xiechengfa的博客:-->http://blog.csdn.net/xiechengfa/article/details/45559223
【解决方案】用EditPlus打开配置文件,并另存为utf-8格式。为什么使用EditPlus而不是记事本呢?这个问题我之前遇到过,貌似记事本在开始的地方会有关于编码的信息神马的。。(一时给忘了,啥时候找到了再来补上。)
【BUG2】linux系统下:
String path=request.getSession().getServletContext().getRealPath("/");
这种方式下获取路径失败。。
【原因分析】未分析。
【解决方案】通过类加载器获取。
String path=this.getClass().getClassLoader().getResource("/").getPath();
path = path.replaceAll("WEB-INF/classes", ""); //JavaWeb中
上一篇: 八阿哥-酷-第一弹
下一篇: 软件测试工程师的面试分享