2023年7月Java开发问题记录

一、无法获取propertis中的key

问题描述:

在开发过程中发现,Centos的Tweb的测试环境中,无法通过以下方式来获取propertis配置文件中的key。

1
ResourceBundle.getBundle("propertis文件名", Locale.getDefault()).getString(key);

抛出异常:

1
java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key xxx

通过网络搜索,大多数开发者是因为一下几点原因:

  1. propertis中未配置key为”xxx”的配置信息
  2. propertis文件路径填写错误

问题原因:

原因是代码和Jar包的重复引用。

本次项目中,项目中的一个模块将源代码直接放入了项目,但是这个这个模块的Jar被其他的Jar进行了引用,在测试环境中,可能因为Tweb的加载机制,导致了老Jar包覆盖掉了新代码中的配置文件,导致propertis文件中并不存在key为”xxx”的配置项。

问题解决:

将pom中引用了该模块Jar包的依赖进行排除操作。

二、Java程序解压zip包出现权限不足的问题

问题描述:

在发开中,需要在程序启动时解压zip包中的缓存,以支持程序的运行。日志中发现了下列中的异常抛出。

1
net.lingala.zip4j.exception.ZipException:Could not create directory:/x/xx/xxx

排查过程中,确认了存放zip包的目录权限充足,解压目录为同一目录。但是解压后,x目录就会出现没有读写权限的情况。

问题原因:

经过排查发现,使用360压缩打包出的zip解压会导致权限不足,无法进行解压。

问题解决:

建议使用Windows自带的zip打包(右键—属性—发送—压缩(zipped)文件夹)或者使用bandizip等其他打包工具。

暂时未发现任何造成此问题的原因,通过网络搜素并未找到相关错误信息。