com.ning.http.client 替换
一背景
在引用一个公用的登录jar,发现是给老的springmvc用的。配置filter那种方式,改为springboot之后。不好使。
Caused by: java.lang.NoSuchMethodError: org.jboss.netty.handler.codec.http.HttpRequest.headers()Lorg/jboss/netty/handler/codec/http/HttpHeaders;at com.ning.http.client.providers.netty.request.NettyRequestFactory.newNettyRequest(NettyRequestFactory.java:178) ~[async-http-client-1.9.38.jar:na]at com.ning.http.client.providers.netty.request.NettyRequestSender.newNettyRequestAndResponseFuture(NettyRequestSender.java:181) ~[async-http-client-1.9.38.jar:na]at com.ning.http.client.providers.netty.request.NettyRequestSender.sendRequestWithCertainForceConnect(NettyRequestSender.java:135) ~[async-http-client-1.9.38.jar:na]at com.ning.http.client.providers.netty.request.NettyRequestSender.sendRequest(NettyRequestSender.java:117) ~[async-http-client-1.9.38.jar:na]at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.execute(NettyAsyncHttpProvider.java:87) ~[async-http-client-1.9.38.jar:na]
查看了下pom.
当前引用为:
<dependency>
<groupId>com.ning</groupId>
<artifactId>async-http-client</artifactId>
<version>1.9.38</version>
</dependency>
这个是2016年的,比较老了,而且最新的也是2016年的,已经没人维护了
尝试pom排除掉,引用1.9.40版本,还是报错。
算了,彻底放弃:改为asynchttpclient
pom.xml引用如下:
<dependency>
<groupId>org.asynchttpclient</groupId>
<artifactId>async-http-client</artifactId>
<version>2.12.1</version>
</dependency>
之前方法的使用了是guava的异步配合接口。
这种:
HttpListenableFuture<Response> future = HttpListenableFuture.wrap(client.executeRequest(builder.build()));return Futures.transform(future, new Function<Response, String[]>() {
新的API:异步GET请求
ListenableFuture<Response> future =
client.prepareGet( "url" ).execute( new AsyncCompletionHandler<Response>() {@Overridepublic Response onCompleted( Response response ) throws Exception {String resp = response.getResponseBody();return response;}@Overridepublic void onThrowable( Throwable t ) {// Something wrong happened.}
} );
异步post就不贴了。
类似的还有:
BoundRequestBuilder、addQueryParam 很多方法都要替换。
方法比较多,替换了一上午,再尝试发新的client包。替换。OK了。
com.ning.http.client 替换相关推荐
- Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient
http 连接池能提升性能 http 的背景原理 a. 两台服务器建立 http 连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间. b. Http 连接需要的 3 次握手 4 次 ...
- 005 Ceph配置文件及用户管理
一.Ceph的配置文件 Ceph 配置文件可用于配置存储集群内的所有守护进程.或者某一类型的所有守护进程.要配置一系列守护进程,这些配置必须位于能收到配置的段落之下.默认情况下,无论是ceph的服务端 ...
- 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...
- 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient)
brave本身没有对AsyncHttpClient提供类似于brave-okhttp的ClientRequestInterceptor和ClientResponseInterceptor,所以需要我们 ...
- LVS-DR模式原理
2019独角兽企业重金招聘Python工程师标准>>> 我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由 ...
- Selenium1 Selenium2 WebDriver
内容摘要: Selenium 1 原理 WebDriver WebDriver 组件 WebDriver 协议 Remote End 处理流程 Commands & Endpoints &am ...
- c3p0 服务启动获取连接超时_微服务架构中的熔断、降级
微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让 ...
- SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...
- CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群
本文是在CentOS7.4 下进行CDH6集群的完全离线部署.CDH5集群与CDH6集群的部署区别比较大. 说明:本文内容所有操作都是在root用户下进行的. 文件下载 首先一些安装CDH6集群的必须 ...
最新文章
- 数据蒋堂 | JOIN延伸 - 维度查询语法
- 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题
- Android Stadio 导入moudle 不显示
- show Locks LockManager not specified解决
- 【干货】通俗理解神经网络中激活函数作用
- Transformer在计算机视觉领域走到哪了?
- 使用位运算(与运算)代替%操作
- 算法稳定币项目Basis Cash将于2月7日启动V2迁移计划
- [转载]Linux Shell 的快捷键
- docx文档怎么排列图片_PDF怎么转Word?这几款软件满足你的要求
- window下python2和python3的共存
- dask 于数据分析_利用Dask ML框架进行欺诈检测-端到端数据分析
- 快手视频如何一键批量下载
- java.io.NotSerializableException: java.util.ArrayList$SubList
- 计算机软件测试方法的分析,计算机软件测试方法的分析.doc
- 校验非空的注解@NotNull怎么取得自定义的message
- [转贴]郎恒《齐天大圣》Rap 搞笑!
- Codeforces Sereja and Mirroring
- excel怎么批量添加单位平方米㎡
- xamarin和mysql_Xamarin 中的数据库