技术标签: Java
本次问题解决花费了一天时间,问题描述如下:
因项目使用了阿里云短信功能,涉及到的三方包有:sdk-core-3.3.1.jar、aliyun-java-sdk-dysmsapi-1.0.0.jar
项目使用jetty启动,在本地调用一直没有问题,故已经排除代码问题,但在centos7上启动服务器后访问接口一直报错:RuntimeException("HMAC-SHA1 not supported.")
首先说明下,使用tomcat形式启动应用,调用接口无任何问题,所以怀疑是jetty启动是加载的jre不对
经常不断排查且查询资料,定位到最后的加密算法走的是/usr/local/java/jre/lib/ext/sunjce_provider.jar 该文件,所以怀疑是程序进行加密计算时没有找到该jar,于是将该jar拷贝至项目的lib中,但问题依旧没有解决,
后来在/usr/local/java/jre/lib/security/java.security 文件中加入了以下代码(本项目采用jdk1.8):
重启服务器后问题得到解决,至于问题的原因还不是很清楚,只能说是加密算法的包没找到,找到之后也不支持该jre的算法提供
希望能帮助到大家(sunjce_provider.jar 和java.security 配置文件都需要做调整才能达到可以使用的目的)
大家遇到此问题,建议换一台服务器或者更换jdk版本试试,首先确保程序没有问题,再来确定环境问题
1、在ng里面用TypeScript 写代码时,发现变量首写下划线会报错,例如:查了很多的网上资料发现是TSLint配置的问题,在TSLint.json的规则里加上:variable-name选项即可"extends": "../tslint.json", "rules": { "variable-name": { "options": [ ...
最近在开发一个轻量级ASP.NET MVC开发框架,需要加入日志记录,邮件发送,短信发送等功能,为了保持模块的独立性,所以需要通过消息通信的方式进行处理,为了保持框架在部署,使用,二次开发过程中的简易便捷性,所以没有选择传统的MQ,而是基于Redis的订阅发布实现一个系统内部消息组件,话不多说,上码!数据结构定义消息实体包含几个部分,订阅通道名称,信息头,信息体,信息差异化额外信息字典,信...
/*CSS语法:结构:选择器+声明块({}) 选择器:通过选择器可以选中页面中指定的元素,并且将声明块中的应用样式应用到对应的 素上。 声明块:紧跟在选择器后面,用大括号括起来,实际上是一组一组的名值对结构, 我们称为声明。多个声明之间使用分号隔开,声明的样式名与样式值之间用冒号连接。*//*块和内联元素 div:就是一个块元素,所谓的块元素就是会独占一行,无论内...
会飞的污熊2018-01-2216173阅读springjwtspringbootRESTful API认证方式一般来讲,对于RESTful API都会有认证(Authentication)和授权(Authorization)过程,保证API的安全性。Authentication vs. AuthorizationAuthentication指的是确定...
数据库2012的安装:SQL Server 2012 数据库安装图解" title="Microsoft SQL Server 2012 数据库安装图解" style="margin:0px; padding:0px; border:0px; list-style:none"> 4. 选中下图右侧的第一项“全新SQL Server独立安装或向现有安装添加功能”,通过向导一
By Toradex胡珊逢简介安卓Android因其丰富的生态环境,以及快捷的应用开发和分发,获得了广泛的市场关注。Toradex最新基于NXP iMX8处理器的Apalis iMX8QM和Colibri iMX8QXP也提供给了Android 9.0 (Pie)支持。下面我们将介绍如从源码开始编译安卓。安卓系统目前并非Toradex官方直接提供技术支持的操作系...
简书同步更新牛顿法给出了任意方程求根的数值解法,而最优化问题一般会转换为求函数之间在"赋范线性空间"的距离最小点,所以,利用牛顿法去求解任意目标函数的极值点是个不错的思路。方程求根对于一元二次方程,求根其实很简单,只要套用求根公式就行了,但找到一个方程的求根公式(解析解)其实是很困难的,可以证明5次方程以上便没有解析解了,参考维基百科五次方程。其他的复杂方程如偏微分方程求解更是超级困难。好在随着计...
切分定理切分(Cut):把图中的节点分为两部分,成为一个切分下图有个切分C = (S, T),S = {A, B, D},T = {C, E}横切边(Crossing Edge):如果一个边的两个顶点,分别属于切分的两部分,这个边称为横切边比如上图的边BC、BE、DE就是横切边切分定理:给定任意切分,横切边中权值最小的边必然属于最小生成树Prim算法 - 执行过程假设G = ...
机器学习 lesson 171. continuous states? 离散化2. curse of dimensionalityThe curse of dimensionality refers to various phenomena that arise when analyzing and organizing high-dimensional spaces (often w...
openwrt通过字符驱动的方式控制LED灯光1、概述2、在源码目录的 ./package/kernel下创建gpio_control_driver文件夹3、在gpio_control_driver文件夹下创建Makefile和src文件夹4、编写Makefile5、进入src目录下创建gpio_control_driver.c 、 Makefile6、编写gpio_control_driver.c 、Makefile7、配置menuconfig8、编译9、把生成的ipk包发送到板子上去10、安装ipk包1
1.Python的发展史1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。1991年,第一个Python编译器诞生。它是用C语言实现的,并能...
热文推荐:尘埃落定!清华才子王垠加入华为职级22,前阿里P10赵海平加入字节跳动,职级或为4+百度网盘“破解版”,Pandownload开发者被抓作者:hsm_computer本文参考:...