java.lang.ClassNotFoundException: retrofit2.Retrofit$Builder解决思路

ClassNotFoundException报错

    • 具体问题
    • 报错详情
    • 推测可能是jar包问题
    • 问题总结自定义依赖缺少依赖jar

具体问题

Caused by: java.lang.NoClassDefFoundError: retrofit2/converter/simplexml/SimpleXmlConverterFactory

报错详情

org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: retrofit2/Retrofit$Builderat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1006)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)...

java.lang.NoClassDefFoundError: retrofit2/Retrofit$Builder
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1006)

推测可能是jar包问题

Retrofit是一个自定义jar包中的pom依赖(jar包被引入到项目中依赖)。

<dependency><groupId>com.squareup.retrofit2</groupId><artifactId>retrofit</artifactId><version>2.5.0</version></dependency>

打开terminal,定位到工程pom.xml所在的目录,执行 mvn dependency:tree 打印maven依赖关系树 。

mvn dependency:tree

如果你的操作系统环境定义了多个本地maven repo的配置,则需要在后面带上你的setttings.xml配置。
例如:

mvn dependency:tree -settings C:\Users\z00402970\2.0_iocm\settings.xml

打印结果:

[INFO] Scanning for projects...
[INFO] 
[INFO] ----------------------< net.ering.van:van-share >-----------------------
[INFO] Building van-lte-boot 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-dependency-plugin:3.0.2:tree (default-cli) @ van-share ---
[INFO] net.ering.van:van-share:jar:0.0.1-SNAPSHOT
[INFO] +- org.testng:testng:jar:6.9.10:test
[INFO] |  +- com.beust:jcommander:jar:1.48:test
[INFO] |  \- org.beanshell:bsh:jar:2.0b4:test
[INFO] +- org.mockito:mockito-all:jar:1.10.19:test
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.0.4.RELEASE:test
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:2.0.4.RELEASE:compile
[INFO] |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:2.0.4.RELEASE:compile
[INFO] |  |  |  +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] |  |  |  |  \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] |  |  |  +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.10.0:compile
[INFO] |  |  |  |  \- org.apache.logging.log4j:log4j-api:jar:2.10.0:compile
...
[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.321 s
[INFO] Finished at: 2020-10-14T15:28:11+08:00
[INFO] ------------------------------------------------------------------------

打印结果中检索servlet

[INFO] +- javax.servlet:javax.servlet-api:jar:3.1.0:provided

发现其他的基本都是compile,而servlet是provided结尾,是项目pom中加上了scope限制

<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet-version}</version><scope>provided</scope></dependency>

回到报错信息第一行,鼠标点击显示如下:
在这里插入图片描述
说明tomcat中也有servlet-api包,provided可以避免发生冲突。
因为provided表示该包只在编译和测试的时候用,所以,当启动tomcat的时候,tomcat中的servlet-api就不会和javax.servert的依赖冲突了。
这个provided的只在编译和测试期有效,已提供范围的依赖在编译classpath 可用,运行时不可用。并且不被传递。

问题总结自定义依赖缺少依赖jar

最后发现是引入的自定义依赖的源码缺少了Retrofit的依赖的引入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/549172.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像质量评估方法——结构相似性指数(SSIM)

结构相似性指数&#xff08;SSIM&#xff09;是一种全参考图像质量评估方法&#xff0c;用于比较两幅图像的相似性。 SSIM的计算涉及到亮度&#xff08;Luminance&#xff09;、对比度&#xff08;Contrast&#xff09;和结构&#xff08;Structure&#xff09;三个方面的相似性…

SQL SERVER重置自动编号列(标识列)

为什么80%的码农都做不了架构师&#xff1f;>>> 两种方法&#xff1a; 一种是用Truncate TRUNCATE TABLE name 可以删除表内所有值并重置标识值 二是用DBCC CHECKIDENT DBCC CHECKIDENT (table_name, RESEED, new_reseed_value) 如dbcc checkident ("bc_pos&q…

“街坊”×××数字平台,昔日的思想,曾经的努力

“街坊”数字平台“街坊”数字平台由“街坊”网站(http://www.jefun.cn/)、街坊售楼系统软件(http://real.jefun.cn/soft/)、街坊二手房交易系统软件(http://zu8.bj.jefun.cn/soft/)三大部分组成&#xff0c;集成了互联网、电话、短信、软件、GIS等诸位一体的技术与服务手段为用…

postfixadmin 导入数据库出错 ERROR 1062 (23000) at line 29

ERROR 1062 (23000) at line 29: Duplicate entry localhost-postfix-postfix for key 1 解决方法 [rootnagios-server postfixadmin]# mysql -uroot -p111111 <DATABASE_MYSQL.TXT ERROR 1062 (23000) at line 29: Duplicate entry localhost-postfix-postfix for key 1 删…

SharePoint最简母版页

代码 <%Master language"C#"%><% Register Tagprefix"SharePoint"Namespace"Microsoft.SharePoint.WebControls"Assembly"Microsoft.SharePoint, Version12.0.0.0, Cultureneutral, PublicKeyToken71e9bce111e9429c"%><…

封装自定义的redis切库工具类ByteArrayRedisTemplate,读取byte数组反序列化成List<Object>

封装自定义的redis切库工具类ByteArrayRedisTemplate&#xff0c;读取byte数组反序列化成List&#xff1c;Object&#xff1e;&#xff08;使用lettuce连接池&#xff09;代码环境框架&#xff1a;springboot依赖&#xff1a;spring-boot-starter-data-redis步骤1&#xff1a;注…

redis的zset使用(java)——存取List< Object>

1 需求 要往redis存取List< Object>。 2 条件 1&#xff09;Object&#xff1a;是一个UserEvent对象&#xff0c;对应3个字段&#xff1a; Integer productId; String eventCode; Long timestamp;2&#xff09;要求 每个key里存取对象个数不超过xx个。 超过xx个&…

ogre研究之第一个程序(一)

第一次发送超过字数了&#xff0c;被迫剪成两篇&#xff01; 上一篇我们介绍了如何搭建开发环境&#xff0c;并创建了一个空白的窗口程序。 这里我们主要是实现在程序中装载一个简单的模型并显示出来。 首先看一下效果吧&#xff0c;&#xff08;模型就是ogre例子中的robot.mes…

英语生词本

英语生词本 1、daemon [di:mən] 守护进程2、phase [英] [feiz] 阶段, 时期3、methodology [英] [ˌmeθəˈdɔlədʒi:] 方法学,方法论4、algorithmalgorithm [英] [ˈlɡəriəm] [美] [ˈlɡəˌrɪəm] 运算法则2. 算法&#xff1b;演算法&#xff1b;计算程序3. 演示5、…

Executors源码解读——创建ExecutorService线程池

Executors源码解读——创建ExecutorService线程池〇、[源码版本] jdk 1.8一、线程池概述二、线程池创建三、Executors源码解读newFixedThreadPool()newWorkStealingPool()newSingleThreadExecutor()newCachedThreadPool()newSingleThreadScheduledExecutor()〇、[源码版本] jdk…

RIP,EIGRP,OSPF融合网络互通实验(原创)

首先看拓扑&#xff1a; 一个面试考官问我一个这样的问题&#xff0c;拓扑如上&#xff0c;为什么R1上的lo0 PING 不通 R6 上的lo0,说是一切都按正常配置&#xff0c;说是考我EIGRP的特性。我当然很纳闷&#xff0c;如果都正常配置怎么会不通呢&#xff0c;最后他告诉我主要是考…

谷歌A/B实验——重叠实验基础设施解读

谷歌A/B实验——重叠实验基础设施解读〇、来源一、背景介绍二、如何划分参数三、谷歌设计的ab实验系统3.1 域和层的设计3.1.1 基础重叠域和层设计3.1.2 具备非重叠和重叠的域和层设计3.1.2 具备非重叠的域的嵌套设计优点3.1.3 具备非重叠的域的嵌套设计缺点3.1.4 启动层&#x…

Mysql 5.7 创建索引官方解读

一、环境 Mysql 5.7 二、Mysql索引创建解读 1.概述 通常我们在使用CREATE TABLE时会创建所有的索引。索引的创建对于 InnoDB 表尤其重要&#xff0c;其中主键决定了数据文件中行的物理布局。 CREATE INDEX是另一种添加索引的方式&#xff0c;针对已经创建的表添加索引。注…

AspectJ切面自定义注解实现参数分组校验——基础概念(1)

AspectJ切面自定义注解实现参数分组校验——基础概念&#xff08;1&#xff09;一、环境二、validation-api源码解读2-1.Default源码解读2-2.valid源码解读2-3.Validation源码解读一、环境 maven 需要引入的依赖&#xff1a; <dependency><groupId>javax.valida…

主板跳线连接技巧图解

作为一名新手&#xff0c;要真正从头组装好自己的电脑并不容易&#xff0c;也许你知道CPU应该插哪儿&#xff0c;内存应该插哪儿&#xff0c;但遇到一排排复杂跳线的时候&#xff0c;很多新手都不知道如何下手。 钥匙开机其实并不神秘 还记不记得你第一次见到装电脑的时候…

为什么每个线程都需要创建一个栈?

有四个函数A、B、C、D&#xff0c;地址分别为100、200、300、400&#xff1b;有两个线程同时执行&#xff1b; 1&#xff09;假如只有一个栈 函数A在线程1中执行的时候&#xff0c;调用了函数B&#xff0c;将函数A中下一条指令的地址入栈&#xff08;104&#xff09;&#xff…

莎士比亚,肯尼迪总统,孔子,奥巴马总统,马克吐温,梵高,比尔盖茨等13位名人阔谈微博(中英双语版本)...

2019独角兽企业重金招聘Python工程师标准>>> 作者: ganzhijie 发表于 2010-09-02 10:11 原文链接 阅读: 21 评论: 0 John F. Kennedy-“Ask not what your twitter can do for you, ask what you can do for your twitter.”肯尼迪总统-“不要问你的微博能为你做些什…

centos 本地化配置

2019独角兽企业重金招聘Python工程师标准>>> 最近使用svn更新的时候经常出现一些奇怪的错误。经过查询得知是本地化环境没有配置&#xff0c;导致的。记录以下解决方法。 本人环境&#xff1a;centos 5.x 错误现象&#xff1a; [Copy to clipboard]View Code ERRORs…

MySQL连接查询

1.分类 MySQL连接可以分为&#xff1a; 1&#xff09;内连接 2&#xff09;外连接 左外连接右外连接全外连接 3&#xff09;自然连接 自然内连接(NATURAL JOIN)自然左外连接(NATURAL LEFT JOIN)自然右外连接(NATURAL RIGHT JOIN) 4&#xff09;交叉连接 2.语法 SELECT…

IP编址(包括网络地址和广播地址)

1.总述 IP地址使用32位二进数表示&#xff0c;每一个主机或路由器的接口都有全局唯一的IP地址&#xff08;NAT是个例外&#xff09;&#xff0c;它由网络号(NetID)和主机号(HostID)组成&#xff0c;它可以分为五类&#xff0c;如下&#xff1a; 2.地址划分 1&#xff09;A…