tomcat和weblogic发布时,jar包内资源文件的读取路径问题
问题场景:
本地使用的是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下文件的相对路径(包含文件名)");
问题解决。
tomcat和weblogic发布时,jar包内资源文件的读取路径问题的更多相关文章
- 2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
文章目录 1.maven下载 2.maven环境变量的配置 3.查看maven是否配置成功 4.配置文件的修改 5.IDEA集成maven 6.导入项目时jar包下载不成功的问题解决 maven教程: ...
- maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包
maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包 2.tomcat不管你什么编译的,也不管你开发工具是什么.Tomcat只接受w ...
- tomcat发布时候jar包问题
今天遇到个问题就是,启动tomcat时,报:java.lang.NullPointerException at org.apache.jsp.**_jsp.jspInit(index_jsp.java ...
- springBoot 发布war/jar包到tomcat(idea)
参考链接:https://blog.csdn.net/qq1076472549/article/details/81318729 1.启动类目录新增打包类: 2.pom.xml新增依赖:<pa ...
- springBoot打包发布项目------jar包
这两年微服务很流行,这里简单介绍一下如何将自己使用idea写的微服务打包成一个可执行的jar包,并发布到linux服务器的步骤.因为spring boot有内置的tomcat所以一般使用内置的tomc ...
- tomcat/Java指定加载jar包的路径
背景:部署的web站点,应用默认加载工程的/webapps/工程名/WEB-INF/lib下的jar包 但是我需要提供一个和web工程没关系的的jar包管理目录 解决方法: 执行java方法时 ...
- Spring Boot发布将jar包转为war包。
Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布.使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题.所以,jar包不一定 ...
- tomcat共享lib里面的jar包
参考:http://shitouququ.blog.51cto.com/24569/1255094 1.在tomcat根目录下新建shared/lib目录结构,将项目的jar包放在此目录下,记得将项目 ...
- weblogic与axis2 jar包冲突
1.org.springframework.web.util.NestedServletException: Handler processing failed; nested exception i ...
随机推荐
- 嵊州D2T3 玛利亚∙多斯普拉泽雷斯 完美配对
嵊州D2T3 玛利亚∙多斯普拉泽雷斯 公墓一共有 n 个墓地,通过 n − 1 条通道相连. 每次,推销员可以在选择一个墓地推销给玛利亚. 但是,考虑很多的玛利亚会尽量否决这个提议. 她会选择一个墓地 ...
- Apache struts2 namespace远程命令执行_CVE-2018-11776(S2-057)漏洞复现
Apache struts2 namespace远程命令执行_CVE-2018-11776(S2-057)漏洞复现 一.漏洞描述 S2-057漏洞产生于网站配置xml的时候,有一个namespace的 ...
- BI之路学习笔记3--olap cube理解实例
为什么会产生OLAP? 随着数据库技术的发展应用,数据库存储的数据量从M字节以及G(千兆)字节过渡到T字节和P字节,同时,用户的查询需求也越来越复杂,设计的已不仅是查询或者操纵一张关系表中的一条或几条 ...
- [记录]Python高并发编程
========== ==多进程== ========== 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识. Unix/Linux操作系统提供了一个fo ...
- Android 开发感想
18年从.net转行做安卓开发,现在已经过去一年多了.说一下感想和心得体会! 一.开始 说一下我的经厉,从毕业开始出来工作一直是从事.net方向的开发工作.一开始也是没什么经验,加上也没有其他手艺就找 ...
- JS浅学
(变量的名字.focus(); )让打开的新的页面获取焦点 (变量的名字.close();)关闭打开的页面 可以用(!变量名)直接判断是否打开过新的页面 用(变量名.closed)判断是不是被关闭了 ...
- Linux学习之安装jdk
下载jdk for linux jdk for linux oracle download 卸载已有的jdk (1)查询是否安装java软件: rpm -qa|grep java (2)卸载jdk: ...
- sklearn使用技巧
sklearn使用技巧 sklearn上面对自己api的解释已经做的淋漓尽致,但对于只需要短时间入手的同学来说,还是比较复杂的,下面将会列举sklearn的使用技巧. 预处理 主要在sklearn.p ...
- C#3.0新增功能09 LINQ 标准查询运算符 04 运算
连载目录 [已更新最新开发文章,点击查看详细] 本篇主要介绍标准查询运算符的常用运算功能. 01 对数据排序 排序操作基于一个或多个属性对序列的元素进行排序. 第一个排序条件对元素执行主要排序. ...
- Clock Crossing Adapter传输效率分析 (Latency增加,传输效率降低)
原创By DeeZeng [ Intel FPGA笔记 ] 在用Nios II测试 DDR3时候发现一个现象 (测试为:写全片,读全片+比对) 用单独的PLL产生时钟(200MHz)驱动 Nios I ...