当前位置: 首页 > news >正文

天津建设部网站保温怎么做彩票网站的代理

天津建设部网站保温,怎么做彩票网站的代理,公司产品彩页设计,网站域名服务器一年多少钱背景 我们在依赖第三方JAR时,同时也会间接的依赖第三方JAR引用的依赖,而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时,可能会导致第三方JAR的在运行时无法找到某些方法或类,从而无法正常使用。 如我正在开发的一个…

背景

我们在依赖第三方JAR时,同时也会间接的依赖第三方JAR引用的依赖,而当我们项目中某个依赖的版本与第三方JAR依赖的版本不一致时,可能会导致第三方JAR的在运行时无法找到某些方法或类,从而无法正常使用。

如我正在开发的一个sdk.jar,其中会使用OpenFeign来进行HTTP通信,现在的项目一般来说都是通过依赖 spring-cloud-openfeign-core,并标注 @FeignClient 注解来实现,但是此项目却不能依赖 spring-cloud-openfeign-core。原因是我们公司有大量的老项目,使用的Spring版本比较老如Spring4,或是有的项目并没有使用Spring Boot。所以在设计之初时,为了兼容老项目,并且尽可能轻量,就设计成了sdk.jar不去依赖Spring Boot以及Spring Cloud,所以只能使用更加底层的io.github.openfeign:feign-core通过Feign.Builder创建各FeignClient。

其中如果要让Feign识别SpringMVC的各种注解,需要为其指定Contract,使用 spring-cloud-openfeign-core 时可以指定 SpringMvcContract,而使用 io.github.openfeign:feign-core 则需要指定 SpringContract,该类是在 io.github.openfeign:feign-spring4 中定义的。

一切看似正常,直到有一个项目使用sdk后在发起HTTP请求时抛出异常

Caused by: java.lang.NoClassDefFoundError: feign/DeclarativeContractat java.lang.ClassLoader.defineClass1(Native Method) ~[na:1.8.0_202]at java.lang.ClassLoader.defineClass(ClassLoader.java:763) ~[na:1.8.0_202]at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 

检查了下,该类是 SpringContract继承的父类。我们sdk.jar中openfeign版本是10.12,而对方项目中本身依赖了 spring-cloud-openfeign-core:2.1.2.RELEASE,对应io.github.openfeign:feign-core的版本为10.2.3,而该版本下确实没有DeclarativeContract类的。

知道问题的所在,那么就需要让对方升级openfeign的版本,并且在我们的用户手册兼容性章节下做出说明,那么到底是从什么版本开始有这个类的呢。如果按照合规性来说,每个新类或新方法的出现应该标注@since注解的,好告知使用者是从什么版本开始新增的,比如

/*** @author beemo* @since 1.2.0*/
public class Test {
}

但是实际上标注的是少数,包括openfeign,所以并不能直接是从什么版本开始新增的。

这时候就需要通过查询网站进行查询了。

实践

search.maven.org

https://search.maven.org/icon-default.png?t=N7T8https://search.maven.org/该网站是官方搜索网站,可以根据坐标、根据类或者根据checksum进行搜索,搜索格式如下

如在文章中最开始的例子中,我想搜索 DeclarativeContract 是从哪个版本中出现的,就可以在搜索框中输入如下搜索条件

 

可以看到,搜索结果有516条,翻页后发现有其他的jar中也包含同样的类,所以我们还需要再过滤一下,根据搜索格式说明增加过滤条件:

这次搜索只搜出了34条,这下我们可以回答前文的问题了,那就是至少升级到10.5.0版本才可以正常使用。


central.sonatype.com

Maven CentralOfficial search by the maintainers of Maven Central Repository.icon-default.png?t=N7T8https://central.sonatype.com/此网站同样是官方的网站,并且界面更好看,搜索条件也更丰富,查询方式略有不同,如下所示

总结

借助上述的网站,我们可以既可以搜索某个类是在什么版本出现的,也可以当程序执行报ClassNotFound等异常时,搜索缺失的依赖是什么,还是比较方便的。

http://www.yayakq.cn/news/244008/

相关文章:

  • 公司建设网站申请wordpress 左侧导航
  • 第一网站ppt模板免费下载鹏牛网做网站怎么样
  • 团购网站APP怎么做在线制作logo免费生成器
  • 网站设计策划书3000字网站运营刚做时的工作内容
  • 门户网站网站建设谈谈你对seo概念的理解
  • 门户网站建设方案是什么意思山东华邦建设集团网站
  • 照片网站模板wordpress 获取自定义字段
  • 做网站合同封面网站建设集群化的必要
  • 网站开发 软件开发百度 门户网站
  • 网站建设的技术支持包括找一个网站做搜索引擎分析
  • 网站做cpa租空间做网站需要多少钱
  • 保定市网站制作公司wordpress胖子马
  • 重庆李家沱网站建设服装微商城网站建设
  • 佛山新网站建设渠道网站ui设计怎么做
  • 公司培训网站建设包商科技wordpress
  • 山东省住房和城乡城乡建设厅网站传媒公司主要经营范围
  • 甘肃城乡建设厅网站网站的颜色
  • 重庆网站空间费用高端网站建设企业
  • 淄博三合一网站开发wordpress 清楚jq
  • 榆树市住房和城乡建设局网站公司网站制作苏州
  • 嘉兴网站托管软件开发专业需要学什么
  • 网络运营推广经验长沙网站优化对策
  • 聊城wap网站建设如何在导航网站上做链接
  • 阳泉网站建设费用做购物商城网站建设
  • c 做网站怎么连接到别的网页网站定位的核心意义
  • 打开一张图片后点击跳转到网站怎么做的ps做网站
  • wap网站设计方案专业网站建设公司排名
  • 上海公司详细地址怎么优化网站代码
  • 自己做网站需要什么网站建设原则
  • html成品网站重庆市建设工程信息网安全监督特种作业