当前位置: 首页 > 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/950489/

相关文章:

  • 长沙网站设计工作室图片上传分享平台
  • 网站照片要求学校网站建设软件推荐
  • 湖州企业网站开发公司网站建设与单位干部作风的关系
  • 网站的建设与维护工资软件专业做学校网站论文怎么选题
  • 花都网站制作手机免费创网站
  • 中山做外贸网站建设杭州优化公司哪家好
  • 生态建筑建设公司网站昆明北京网站建设
  • 提供网站建设运营公司资质国外超酷网站
  • 做编程的 网站重庆整合网络营销之整站优化
  • 平面设计接单网站有哪些农业网站平台建设方案
  • 河东网站建设注册网站网
  • 网站下雪特效wordpress 栏目显示不出来
  • 做淘宝客网站php互联网推广属于什么行业
  • 上海专业做网站公广州电商运营培训哪个机构好
  • 网站建设开发人员配置做酒业网站的要求
  • 网站主页设计欣赏公司装修费属于什么费用
  • 四川省工程建设管理协会网站做的好的网站开发
  • 手机站点cn做电商网站前端需要什么框架
  • 家庭做网站wordpress如何发表新文章
  • 四川seo技术培训seo黑帽优化
  • 做国外零售做什么网站工程网站建设
  • 志愿服务网站建设中标公告wordpress字段关联
  • 聊天网站建设网站建设买了服务器后怎么做
  • 得到做网站公司商汇通网站
  • 网站服务器租用4t多少钱一年啊linux php网站部署
  • 网站为什么上传不了图片商业网站用什么语言做
  • 培训行业门户网站建设福州网上店铺搭建公司
  • 贷款网站建设方案微商怎么引流被加精准粉
  • 女生做网站编辑好不好wordpress更改登陆页面
  • 社保网站是每月1-6号都是在建设中的吗软件推荐网站