一背景

在引用一个公用的登录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 替换相关推荐

  1. Spring Cloud Feign 使用Apache的HTTP Client替换Feign原生httpclient

    http 连接池能提升性能 http 的背景原理 a. 两台服务器建立 http 连接的过程是很复杂的一个过程,涉及到多个数据包的交换,并且也很耗时间. b. Http 连接需要的 3 次握手 4 次 ...

  2. 005 Ceph配置文件及用户管理

    一.Ceph的配置文件 Ceph 配置文件可用于配置存储集群内的所有守护进程.或者某一类型的所有守护进程.要配置一系列守护进程,这些配置必须位于能收到配置的段落之下.默认情况下,无论是ceph的服务端 ...

  3. 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务

    在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...

  4. 第二十八章 springboot + zipkin(brave定制-AsyncHttpClient)

    brave本身没有对AsyncHttpClient提供类似于brave-okhttp的ClientRequestInterceptor和ClientResponseInterceptor,所以需要我们 ...

  5. LVS-DR模式原理

    2019独角兽企业重金招聘Python工程师标准>>> 我们都知道LVS有LVS-DR,LVS-NAT,LVS-TUN三种模式,其中DR模式意为Direct Routing(直接路由 ...

  6. Selenium1 Selenium2 WebDriver

    内容摘要: Selenium 1 原理 WebDriver WebDriver 组件 WebDriver 协议 Remote End 处理流程 Commands & Endpoints &am ...

  7. c3p0 服务启动获取连接超时_微服务架构中的熔断、降级

    微服务架构中熔断和降级是保证服务高可用的一项重要功能点,微服务区别于一体化项目的最大区别也再于熔断和降级,很多微服务项目的开发人员对熔断的理解就是当服务不可用的时候,为了让整体服务可以正常运行,需要让 ...

  8. SpringCloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务

    首先简单解释一下什么是声明式实现? 要做一件事, 需要知道三个要素,where, what, how.即在哪里( where)用什么办法(how)做什么(what).什么时候做(when)我们纳入ho ...

  9. CentOS7 Cloudera Manager6 完全离线安装 CDH6 集群

    本文是在CentOS7.4 下进行CDH6集群的完全离线部署.CDH5集群与CDH6集群的部署区别比较大. 说明:本文内容所有操作都是在root用户下进行的. 文件下载 首先一些安装CDH6集群的必须 ...

最新文章

  1. 黄皓之后,计算机科学上帝Don Knuth仅用一页纸证明布尔函数敏感度猜想
  2. python修改字典某一项的函数_python – 更改字典作为函数的全局范围
  3. 打开Mybatis核心配置文件SqlMapConfig.xml的代码提示功能
  4. 最新综述:基于Transformer的NLP预训练模型已经发展到何种程度?
  5. 【高速接口-RapidIO】Xilinx SRIO IP 核详解
  6. vue开发手机页面闪烁_Vue页面加载闪烁问题的解决方法_婳祎_前端开发者
  7. Java进阶 | IO流核心模块与基本原理
  8. 从事 Android 开发六年,我学到的那些事!
  9. React 进修之路(1)
  10. SpringBlade 2.0-RC3 发布,全新的微服务开发平台
  11. 为什么录像总是很暗_为什么拍出的的照片总是很暗?看下是不是这2个原因造成的...
  12. Java 定时任务表达式
  13. Win10无法安装 文鼎CS行楷.TTF
  14. win10完美运行红警
  15. MTSP问题遗传算法解决及其代码与案例
  16. Java使用aspose将word文档转换为pdf
  17. win7无法连接打印机拒绝访问_win7系统共享打印机拒绝访问的完美解决方法
  18. 语音笔记APP哪个好 用它直接录音并整理很方便
  19. LaTex:实现在Springer可以使用bibtex自动生成引用文献,而不用写Bibitem
  20. 暑假实习 + 提前批 +校园招聘(更新中)

热门文章

  1. 安卓开发入门教程!终于有人把安卓程序员必学知识点全整理出来了,附答案
  2. 进程间通信的方式及原理
  3. 如何在 Vim 中用换行符替换字符
  4. 信息技术重返MBA课程
  5. mib browser打开mib文件
  6. linux带有超时等待的信号量,C++多线程同步之Semaphore(信号量)
  7. qq聊天页面设置html,如何设置qq聊天窗口消息显示方式
  8. seek 方法java,Seek.java
  9. 【20180615】【射频通信】RF、IF、Baseband的区别,PLL和VCO的定义,I/Q信号的定义
  10. 如何在Visual Studio中自动格式化代码?