最近项目里面在接第三方验证的时候,需要用到生成的公钥和私钥证书。在demo测试的时候,发现在resources里面直接建立一个key文件夹放入证书文件,然后使用文件方式去获取,大概代码如下:

File pfxfile = SpringContextUtils.getApplicationContext().getResource("classpath:key" + File.separatorChar + xinyanProperties.getPfxName()).getFile();

dubug下发现能够正常取到证书的内容,但是将项目打成jar包传输到服务器上之后,发现方法报错,在获取证书内容的时候,报null,也就是说正常的获取在服务器上失败了。


查找原因

把jar包反编译之后,发现jar包内的目录结构和springboot项目的目录结构全不一样:对比如下图:





对比发现里面已经没有了对应的文件路径,所以使用上面的方法是获取不到的,经过Google,发现了这种情况下,使用流的方式获取

InputStream stream = getClass().getClassLoader().getResourceAsStream("key" + File.separatorChar + xinyanProperties.getPfxName());

总结

getClass().getResource(fileName):表示只会在当前调用类所在的同一路径下查找该fileName文件; .getClass().getClassLoader().getResource(fileName):表示只会在根目录下(/)查找该文件;

`

springboot无法获取证书内容的更多相关文章

  1. 获取证书以用于 Windows Azure 网站 (WAWS)

    编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 近年来,随着网络犯罪的上升,使用 SSL 保护网站逐渐成为一项备受追捧的功能,Windows A ...

  2. CSP:使用CryptoAPI解码X509证书内容

    微软的CryptoAPI提供了一套解码X509证书的函数,一个X509证书解码之后,得到一个PCCERT_CONTEXT类型的结构体指针. 通过该结构体,我们就能够获取想要的证书项和属性等. X509 ...

  3. SpringBoot web获取请求数据【转】

    SpringBoot web获取请求数据 一个网站最基本的功能就是匹配请求,获取请求数据,处理请求(业务处理),请求响应,我们今天来看SpringBoot中怎么获取请求数据. 文章包含的内容如下: 获 ...

  4. appium如何获取conten-desc内容文本

    如何获取conten-desc内容文本 定位到该元素,通过getAttribute("name");来获取内容如:媒体报道 总结: 思路和selenium一样,可以理解为获取它的v ...

  5. PHP curl获取页面内容,不直接输出到页面,CURLOPT_RETURNTRANSFER参数设置

    使用PHP curl获取页面内容或提交数据,有时候希望返回的内容作为变量储存,而不是直接输出.这个时候就必需设置curl的或true. 1.curl获取页面内容, 直接输出例子: <?php $ ...

  6. PHP模拟POST请求,获取response内容

    /* * 模拟POST请求,获取response内容 */ protected function curl($url, $type, $header, $data) { $CURL_OPTS = ar ...

  7. jquery获取标签内容,编辑内容

    一.获取页面元素 三种方式获取页面中元素的内容. input标签使用:.val()获取 标签下的html及文本内容:.html() 仅获取标签下的纯文本内容:.text() <head> ...

  8. Asp.net正则获取html内容

    1.获取div内容 string str = "tt<u>ss</u><div id=\"test\"><div>< ...

  9. C# 正则获取html内容

    1.获取div内容 string str = "tt<u>ss</u><div id=\"test\"><div>< ...

随机推荐

  1. swift 第五课 定义model类 和 导航栏隐藏返回标题

    1. 网络请求返回数据时候,把数据转化为model,但是有时候会返回空的字符串,所以加载了个长度的判断: class Model : NSObject{ var details_url:String? ...

  2. Python学习笔记——GUI

    1. 相关文档 EasyGui 官网:http://easygui.sourceforge.net 官方的教学文档:easygui-docs-0.96\tutorial\index.html 小甲鱼翻 ...

  3. 带你手写基于 Spring 的可插拔式 RPC 框架(二)整体结构

    前言 上一篇文章中我们已经知道了什么是 RPC 框架和为什么要做一个 RPC 框架了,这一章我们来从宏观上分析,怎么来实现一个 RPC 框架,这个框架都有那些模块以及这些模块的作用. 总体设计 在我们 ...

  4. 通过JS动态追加标签,以父评论子评论为例

    以下代码前后端交互以Django模板语法为例 先来以伪代码来示意用法: HTML部分: JS动态插入部分代码: 运行之后我们来浏览器看检查打印的内容: 看插入前后打印结果我们可以得知 $title[0 ...

  5. 【转贴】NUMA的取舍与优化设置

    NUMA的取舍与优化设置 https://www.cnblogs.com/tcicy/p/10191505.html 在os层numa关闭时,打开bios层的numa会影响性能,QPS会下降15-30 ...

  6. HanLP-基于HMM-Viterbi的人名识别原理介绍

    Hanlp自然语言处理包中的基于HMM-Viterbi处理人名识别的内容大概在年初的有分享过这类的文章,时间稍微久了一点,有点忘记了.看了 baiziyu 分享的这篇比我之前分享的要简单明了的多.下面 ...

  7. SQL中的关键词

    AS的用法及妙用 https://www.cnblogs.com/zhaotiancheng/p/6692553.html

  8. 更改oracle RAC public ip,vip,scan ip和private ip

    更改oracle RAC public ip,vip,scan ip和private ip oifcfg - Oracle 接口配置工具 用法:  oifcfg iflist [-p [-n]]    ...

  9. (六)springMvc 和 mybatis 整合

    目录 文章目录 @[toc] 整合 dao 层 整合 springMvc #整合思路 整合是将spring 看做是一个大的容器,将其他东西整合进来,是以 spring 为大环境的: 整合 spring ...

  10. 网络流基础&网络流24题

    网络最大流 dinic+当前弧优化. const int N=10007,M=100007,inf=1e9; int s,t,head[N],ver[M],edge[M],Next[M],tot=1, ...