首页 > 编程语言 >java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provi

java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provi

时间:2023-02-16 11:24:49浏览次数:35  
标签:java constructing jdk sun jar ssl provider security

服务器迁移,在新服务器上发现邮件发送或者使用httpClient会报出下面的异常,问题可谓是惊人的相似。

javaMail发送邮件异常:

 

 使用httpClient异常:

 

先开始排查问题。

检查了服务网略策略的都没问题,代码什么的都没有问题,在本地跑起来都能正常使用。

当以上都没有问题时,这个问题一般都是JDK惹出来的。

我项目使用的jdk版本为1.7。

度娘上可以找到一些类似问题的解决办法,一般有两种。但这两种都没有解决我们的问题,第三种才真正解决了。先来看看前两种解决办法,有的环境问题,前两种也可以解决。

第一种:

找到jdk中的j,.../jre/lib/security文件夹中的java.security文件,并设置

security.provider.1=com.sun.crypto.provider.SunJCE
security.provider.2=sun.security.provider.Sun
security.provider.3=sun.security.rsa.SunRsaSign
security.provider.4=sun.security.ec.SunEC
security.provider.5=com.sun.net.ssl.internal.ssl.Provider
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC

保存之后,重启服务,看看问题是否能解决。如果不能再看第二种。

第二种:

再搜索 从官网上下载 并替换security下 local_policy.jar 和 US_export_policy.jar

这里注意jdk的版本不同这两个文件的位置有所变动,有可能在security/policy文件中。

替换完成之后,重新启动服务,看看问题是否能解决。如果不能请看第三种。

第三种:

自己摸索了很久,与本地jdk对比发现服务器的JRE的lib/ext扩展文件下少了几个jar包。我这里的jdk是少了两个。

于是把缺少的jar都复制到服务器上对应的文件内。

新增好之后,重启服务,看看能否解决。

如果还不能解决,那......。

目前还没发现第四种方法,如果发现后续再补充。

标签:java,constructing,jdk,sun,jar,ssl,provider,security
From: https://www.cnblogs.com/zhizhixiaoxia/p/17125973.html

相关文章

  • java LinkedList集合特有功能
    javaLinkedList集合特有功能       ......
  • java字符串之间的拼接方法
    在java开发中,有很多时候,需要把一个集合或者数组中的数据进行拼接,拼接成一个全新格式的字符串,这时候就用到了java中的一些方法,方法如下:一、Joiner-guava点击查看代码/......
  • 5. Java并发
    什么是线程和进程?何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在Java中,......
  • Java最全八股文(2023最新整理)
    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校......
  • 读Java实战(第二版)笔记11_语言特性和类库更新
    1. 注解1.1. 一种使用附加信息装饰程序元素的机制1.2. Java8之前,只有声明可以被注解1.3. 一种语法元数据(syntacticmetadata)1.4. 可以用于文档编制1.4.1. @De......
  • AcWing 785.快速排序(Java)
    题目描述给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第......
  • 如何处理 Java 中的 OutOfMemoryError 异常
    java.lang.OutOfMemoryError是Java中的一个运行时错误,它通常发生在Java虚拟机(JVM)由于Java堆内存不足而无法分配对象时。Java垃圾回收器(GC)无法释放新对象所需的空间,从......
  • Java类加载的执行过程
    类加载分为以下5个步骤:1.加载:根据查找路径找到相应的class文件然后导入;2.检查:检查加载的class文件的正确性;3.准备:给类中的静态变量分配内存空间;4.解析:虚拟......
  • java数组
    java数组相同类型数据的有序集合数组的建立定义数组//数据类型[]变量名=赋值//数据类型变量名[]=赋值声明建立//定义数组int[]num;//声明建立num=ne......
  • Java 8新特性之 Optional 类
    前言java.util.Optional是java8中引进的一个新的类,我们通过Optional类的源码可以看到,该方法的作用可以对可能缺失的值进行建模,而不是直接将null赋值给变量。Optional类......