Java 上传文件到 SFTP 抛异常 java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC...

最近从 Op 那里报来一个问题,说是SFTP上传文件不成功。拿到的 Exception 如下:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class sun.security.ec.SunEC
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_111]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) ~[?:1.7.0_111]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.7.0_111]

奇了怪了,以前都好好,怎么突然找不到 Class 了,上客户环境一看,升级了 JDK:

java version "1.7.0_111"
OpenJDK Runtime Environment (rhel-2.6.7.2.el6_8-x86_64 u111-b01)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)

那也不至于找不到 Class 啊,所需要的 SunEC.jar 好好的放在 ext 目录呢。

最后还是 Google 大神帮助,在 JDK 的 问题列表找到原因,OpenJDK 由于版权问题,去掉了某些 Oracle JDK 才有的东西,而 SunEC 被 nss 替换了,而且 nss 需要更新版本。

https://bugzilla.redhat.com/show_bug.cgi?id=1332867

在客户机器上升级 nss 为 3.21 后,问题解决。

nss-softokn-freebl-3.14.3-23.3.el6_8.x86_64
nss-3.21.0-8.el6.x86_64
nss-tools-3.21.0-8.el6.x86_64

转载于:https://www.cnblogs.com/seasonsluo/p/6004431.html

### 回答1: 连接失败。请确认所有连接参数并检查是否安装了适当的驱动程序。java.lang.noclassdeffounderror:无法初始化类sun.security.ssl.sslcontextimpl $ tlscontext。 ### 回答2: 这个错误信息的意思是连接失败。需要验证所有连接参数,并确认是否安装了正确的驱动程序。同时还出现了一个java.lang.noclassdeffounderror错误,其中的sun.security.ssl.sslcontextimpl$tlscontext无法初始化。 这个错误通常与Java应用程序中的网络连接有关。出现这种错误的原因通常是连接参数设置错误、驱动程序不兼容或者是Java运行环境出现了问题。如果是连接参数设置错误,可以检查一下参数是否填写正确,比如服务器地址、端口号、用户名和密码等。如果驱动程序不兼容,就需要安装正确的驱动程序或者升级Java运行环境。 此外,还有可能是Java环境的问题。可以尝试重新安装Java运行环境,或者更新到最新版本。有时候也会因为网络问题导致连接失败,可以尝试在其他网络环境下进行连接,或者检查网络设置是否正确。如果还是无法解决问题,可以考虑联系软件开发人员寻求解决方案。 ### 回答3: 这个错误提示意味着连接失败,需要验证所有的连接参数,并确认已安装适当的驱动程序。同时,出现了java.lang.noclassdeffounderror异常,表示初始化sun.security.ssl.sslcontextimpl$tlscontext类失败。 在解决这个问题时,有几个重要的步骤需要注意。首先,我们需要检查连接参数,确保它们与我们所连接的目标服务器相匹配。这可能包括IP地址、端口号、用户名和密码等信息。如果有任何变化,应该及时更新这些参数。 其次,我们需要检查系统中是否已安装所需的驱动程序。这些驱动程序通常由数据库供应商提供,通常需要在系统上手动安装。如果没有正确安装这些驱动程序,可能会导致连接失败或其他错误。 最后,我们需要研究java.lang.noclassdeffounderror异常,并尝试找出它的根本原因。这可能涉及到查看系统日志、检查依赖关系、调整环境变量等等。 总之,要解决连接失败和java.lang.noclassdeffounderror的问题,我们需要仔细检查连接参数、确认驱动程序已正确安装,并了解异常的根本原因。只有这样,才能确保我们的应用程序能够正常连接到数据库,并进行有效的数据访问和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值