docker + springboot + springColud 下,项目中有配置文件,读取出现file not found 路径中有!的问题

最近在做微信支付的开发,做到退款的时候,需要使用到p12 证书,在本地调试没问题了,打成jar 包,放入到docker 下面运行,结果出现如下的bug

java.io.fileNotFound:  file: xxx/xxx.jar!/classes!/xxx/xxx.p12(no such file or directory)的问题

原因是 打包以后,通过读文件的方式是无法得到的,需要解压,通过以下方式可以在不解压的情况下读取p12文件:

 String path = this.getClass().getResource(CERTIFICATEPATH).getPath();

  

通过此种方法在本地开发可以取到,因为文件是确实存在的此路径,但是打包后,无法得到此路径,需要用一下方法按流的方式读取

然后将流导入到keystore 中,即可以完成调用

InputStream inputStream=getClass().getClassLoader()
            .getResourceAsStream(certFile);

原文地址:https://www.cnblogs.com/zhangsdml/p/9771664.html

时间: 2024-11-10 15:57:39

docker + springboot + springColud 下,项目中有配置文件,读取出现file not found 路径中有!的问题的相关文章

java --配置文件读取

该工具类对于java项目中配置文件读取很方便~ 示例代码: package com.lky.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Properties; import org.apache.commons.logging.Log; import or

Linux下配置文件读取操作流程及其C代码实现

一.概述 Linux具有免费.可靠.安全.稳定.多平台等特点,因此深受广大程序员的欢迎. 为了体现软件产品的灵活性,可添加配置文件存放某些重要的参数,在部署的时候根据实际的安装环境对每个配置项的值进行设置.这就要求程序能够准确读取到各个配置项的值. 本文详细介绍了Linux下配置文件的读取方法及读取操作的C代码实现,为相关的软件开发工作的开展提供了有益的参考. 二.配置文件介绍 为了便于程序处理,对配置文件的命名及内容格式有一些约定,具体如下: 第一,配置文件的后缀为ini,如本文中使用到的配置

docker深入2-linux下的配置文件daemon.json使用示例

2016/12/9 一.现状 1.默认没有这个配置文件,手动创建一个即可. 2.我们目前使用过的操作 在"docker深入2-存储驱动之使用devicemapper(direct-lvm)模式"这一节中,我们是这样操作的: --------------------------------------- 调整 daemon.json 的配置: [[email protected] ~]# cat /etc/docker/daemon.json {     "storage-dr

Java程序读取tomcat下的properties配置文件

代码如下: //找到tomcat/etc/wx文件夹 private static String getPropFolderPath() { /* Properties p = System.getProperties(); p.list(System.out);*/ //获取tomcat的路径 String path = System.getProperty("catalina.home"); if (StringUtils.isEmpty(path)) { path = Query

一目了然之SpringBoot中yml和properties配置文件

1.什么是yml什么是properties? 对于刚接触springboot的同学,肯定存在一时搞不清楚yml和properties配置文件有什么区别.首先,无论是yml还是properties,都是SpringBoot配置文件中的一种格式,默认名为application.yml或application.properties  ,默认放在resources文件夹下,当然,放在resources/config文件夹下也是可以读取到的. 2.各自的优点? 下面我们以配置redis缓存数据库的配置文件

Android Studio下项目构建的Gradle配置及打包应用变体

Gradle简介 ??Gradle是一个自动化构建工具,采用Groovy的Domain Specific Language(领域特定语言)来描述和控制构建逻辑.具有语法简洁.可读性强.配置灵活等特点.基于Intellij IDEA社区版本开发的Android Studio天生支持Gradle构建程序.Groovy是一种基于JVM的敏捷开发语言,结合了Phthon.Ruby和Smalltalk的许多强大特性.同时,Groovy代码既能够与java代码很好地结合,也能够用于扩展现有的代码. Grad

eclipse中从配置文件读取数据库配置方法

假如配置文件为DBLINK.properties,在项目的根目录的conf文件夹下, 配置文件内容如下: jdbcUrl=jdbc:orcale:thin:@172.16.5.22:1521:XXDB(数据库名称) user=xxxx(用户名) password=xxxx(密码) 然后在你的数据库连接类中读取该配置文件,可以放在加载驱动之前进行读取, 如下: static {     InputStream in = DBLinkDao.class.getClassLoader().getRes

【Spring源码分析】配置文件读取流程

前言 Spring配置文件读取流程本来是和http://www.cnblogs.com/xrq730/p/6285358.html一文放在一起的,这两天在看Spring自定义标签的时候,感觉对Spring配置文件读取流程还是研究得不够,因此将Spring配置文件读取流程部分从之前的文章拆出来单独成为一文. 为了看一下Spring配置文件加载流程,先定义一个bean.xml: 1 <?xml version="1.0" encoding="UTF-8"?>

二、Spring配置文件读取

在开发是时候我们使用Spring,主要是他为我们的开发提供很多便捷的方式,控制反转,依赖注入和面向切面编程是Spring的三大核心思想,配置文件读取也可以说是一种依赖注入,只不过这个是从配置文件中依赖注入进来的,那如何见配置文件中数据注入到bean 中呢? (java学习交流③群:256909960,欢迎加入) 一.通过@Vaule来配置 这种配置的是通过Spring将配置文件加载后,在属性上使用@Value注解将对应的值注入进来 1.pom文件 需要的依赖 <dependency> <