tomcat和weblogic发布时,jar包内资源文件的读取路径问题
2024-09-01 05:05:35
问题场景:
本地使用的是tomcat作为发布容器,应用启动后一切正常;
发布测试环境服务器使用weblogic作为发布容器,发布后File类读取文件无法找到文件(路径错误)。
问题原因:
tomcat 和 weblogic 的发布方式不同,tomcat将war包解析后class文件是存放在classes文件夹下的,目录结构和项目中src是一致的,这时用类加载器可以获取其相对地址
String filePath = DeductPlatHttpAPI.class.getClassLoader().getResource("/").getPath()+"src下的相对地址(含文件名)"
但是,weblogic发布后classes文件夹是空的
这是因为weblogic会将class文件重新打包后放在 WEB_INFO 的lib下。
包内的文件直接用类加载器获取的相对路径和File对象是无法获取的。
经过修改后直接用类加载器来获取文件,直接得到它的文件流。
ClassLoader classloader =Thread.currentThread().getContextClassLoader(); InputStream pubKeyStream =classloader.getResourceAsStream("src下文件的相对路径(包含文件名)");
问题解决。
最新文章
- 对ADC(DAC)的线性度(INL和DNL)的一点理解 [转]
- WPF学习之路(八)页面
- 20145206邹京儒《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
- VS快捷键设置
- Linux:常用快捷键
- java5 CountDownLatch同步工具
- 开源Web安全测试工具调研
- LeetCode (10): Regular Expression Matching [HARD]
- hdu 5630 Rikka with Chess
- python实现刷博器(适用于新浪、搜狐)
- 《实验数据的结构化程序设计》 2.4.4Calendar个人意见,寻求指引
- android 简单的登录
- Mysql删除数据后磁盘空间未释放的解决办法【转】
- Linux操作系统文件查找
- IntelliJ IDEA 报错:找不到包或者找不到符号
- HashMap 与 Hashtable 的区别
- postgresql 自定义聚合函数
- mysql5.6做单向主从复制Replication
- formidable模块的使用
- Spring DBCP用xml和properties2种格式配置DataSource