转载请注明来源:http://blog.csdn.net/loongshawn/article/details/50590660
前言说明:当前我的工程中使用的httpclient-4.3.6.jar和httpcore-4.3.3.jar版本的包。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
今天执行阿里云的OSS相关操作时,首先提示以下异常:
java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
详细如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy
at com.aliyun.oss.OSSClient.<init>(OSSClient.java:246)
at com.aliyun.oss.OSSClient.<init>(OSSClient.java:206)
at com.autonavi.oss.client.DefaultOSSClient.<clinit>(DefaultOSSClient.java:12)
at com.autonavi.oss.put.Upload.put(Upload.java:20)
at com.autonavi.oss.put.Upload.main(Upload.java:58)
Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 5 more
从上面报错提示可以看出,是org/apache/http/ssl/TrustStrategy下面找不到TrustStrategy这个类,我查了下依赖中的httpclient-4.3.6.jar和httpcore-4.3.3.jar两个包,均没有这个类。
而4.4版本中有ssl路径:
及对应org/apache/http/ssl/TrustStrategy方法。
很明显是版本不对,应该换成新版本。
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4</version>
</dependency>
重新执行代码,上面异常已经消失,不过出现新异常:
java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier
异常详细:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier
at com.aliyun.oss.common.comm.DefaultServiceClient.createHttpClientConnectionManager(DefaultServiceClient.java:230)
at com.aliyun.oss.common.comm.DefaultServiceClient.<init>(DefaultServiceClient.java:78)
at com.aliyun.oss.OSSClient.<init>(OSSClient.java:246)
at com.aliyun.oss.OSSClient.<init>(OSSClient.java:206)
at com.autonavi.oss.client.DefaultOSSClient.<clinit>(DefaultOSSClient.java:12)
at com.autonavi.oss.put.Upload.put(Upload.java:20)
at com.autonavi.oss.put.Upload.main(Upload.java:58)
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.ssl.NoopHostnameVerifier
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 7 more
很明显是版本不对,是由于httpclient-4.3.6.jar缺少NoopHostnameVerifier方法:
而4.4版本中有这个方法:
应该换成新版本,即换成httpclient-4.4.jar
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.4</version>
</dependency>
查看下jar包中相应路径存在上面那个类。
最后再次执行,执行成功,无异常!
所以,下次碰到以下两个异常时:
1、
java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
2、
java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier
需要升级httpclient.jar和httpcore.jar两个包的版本,4.3的版本中不含有上述两个类,需要同时升级到4.4版本。
即替换为httpclient-4.4.jar和httpcore-4.4.jar
1.js对象 用for in遍历 如:for(let item in st){ console.log(item) } // 返回的是键也是就是属性名。 如果要返回的是键值,则 for(let item in st ) { console.log(st[item]) } // 此时依次输出键值let persons = { 120: { name: 'bob', age:...
use_frameworks!platform :ios, '8.0'pod 'AFNetworking'pod 'SDWebImage'pod 'SVProgressHUD'pod 'SnapKit'pod 'FMDB'
首先HashMap是线程不安全的。JDK1.7的时候采用头插法,多线程同时插入的时候,A线程在插入节点B,B线程也在插入,遇到容量不够开始扩容,重新hash,放置元素,采用头插法,后遍历到的B节点放入了头部,这样形成了环。JDK1.8采用尾插法,会造成两种情况两个线程同时插入只有一个成功插入,还有就是可能会造成两次resize(++size>threshold) 。解决的方案:一、使用HashTable效率比较差。二、使用ConcurrentHashMap比较常用的。三、使用Collections.
算法思想:map必须是无回路的连通图或者是n-1条边的连通图。采用深度优先搜索算法遍历途中可能访问到的顶点个数和边数,如果一次遍历能访问到n个顶点和n-1条边,则是一棵树。代码如下(以5*5的矩阵为例):#include<iostream>using namespace std;int map[5][5];int supMap[5][5] = { 0 };//辅助矩阵i...
智能音箱大战余热尚在,智能摄像机的战场就已经开始排兵布阵,蠢蠢欲动。攻防之势,跃然纸面。 其实,摄像机产品由来已久,智能摄像机市场也走过了四个年头,但是由于前几年巨头厂商并没有真正发力,也没有IoT入口这个概念的加持,因而,专注做智能摄像机的企业一直都是在闷声发大财。 而随着IoT平台发展逐渐完善,IoT入口的概念逐渐被推到风口浪尖,再加上海康...
第101期 视觉论文速览图像修复 超分辨 去噪 单点目标检测
DescriptionYou have N integers, A1, A2, … , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to ask for the sum of numbers in a given interval.InputThe
最小路劲覆盖一个不含圈的有向图G 中,G的一个路径覆盖是一个其结点不相交的路径集合P,图中的每一个结点仅包含于P中的某一条路径。路径可以从任意结点开始和结束,且长度也为任意值,包括0。在有向无环图中 最小路径覆盖数 = 顶点总数—最大匹配数POJ-1422-Air Raidhttp://poj.org/problem?id=1422#include#include
一.初始Java异常对异常的理解:异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生对异常事件可分为两类:Error:Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如:StackOverflowError和OOM。一般不编写针对性 的代码进行处理。Exception: 其它因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:空指针访问试图读
本篇深入了解查询优化和服务器的内部机制,了解MySql如何执行特定查询,从中也可以知道如何更改查询执行计划,当我们深入理解MySql如何真正地执行查询,明白高效和低效的真正含义,在实际应用中就能扬长避短。声明:本人使用的数据库版本为MySql 5.1 一、基本原则:优化数据访问查询性能低下的最基本原因就是访问了太多数据,一些查询要不可避免地筛选大量的数据,大部分性能欠佳的查询都可以
比如在跳转的时候要加载数据,加载数据的时候给个提示框,数据加载中...等等。开始我放在Activity的前3个生命周期里,每个里面都会报错,于是网上搜集了几个方法,基本都可以解决这种问题。1、使用handler去延迟显示这个popupwindow,代码如下new Handler().postDelayed(new Runnable() { @Override
这里写目录标题传统用户身份验证什么是单点登录单点登录三种常见方式session广播机制实现使用redis+cookie实现使用token实现JWTJWT的组成JWT头有效载荷签名哈希JWT的原则JWT的用法JWT问题和趋势JWT不仅可用于认证,还可用于信息交换。善用JWT有助于减少服务器请求数据库的次数。生成jwt引入依赖JWT工具类传统用户身份验证Internet服务无法与用户身份验证分开。一般过程如下:用户向服务器发送用户名和密码。验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会