dubbo+springMVC消费端报错classNotFound

2023-05-16

       首先,说明一下我的错误原因:是因为provider端打jar包方式的错误导致的,如果你已经将这种错误可能排除了,就不用浪费时间看我啰嗦了。maven基础比较弱,之后系统学一下吧,见谅。

 

解决方案:

       我在出错的时候,在网上查找发现很多人写的博文大多都是上来一顿描述自己的排查历程,然后说到最后读者发现问题和自己的不一样。浪费了很多时间,所以我先将问题和解决方案提出来了。

       我是直接将provider端的api  使用maven install打包了一下。然后在consumer端直接引入jar包。然后就导致了一系列的问题,最主要的也就是classNotFound的问题,provider端的接口没有注入到spring容器中。在网上查了很长时间,发现是provider端的jar打包打的有问题。原本是只maven install了api,正常是需要将整个项目都maven install了。就是在provider的parent(root)  install一下就行了,然后在引用api中的jar就ok。

 

问题排查过程:

      首先,引入provider端的jar包后,发现接口没有注入成功,启动服务报错classNotFound。

      没有注入成功,首先排查provider端提供服务是否正常。排查方式有:
         (1)zookeeper+getBean的方式加载配置文件直接调用provider端的接口

         (2)点对点方式+getBean搞一下。

       以上两个方法我都测试成功了,那么问题一定是出在了注入这里。检查spring扫描包是否将dubbo的配置文件给扫描上了

       这些在我项目中都没有问题,那么就来排查一下提供方给的包是否有问题。之前看过spring扫描包的源码。如果想将一个接口扫描到spring容器中,必须在他的实现类上面加上@Service。这样在扫面他的实现类的时候就会把这个实现类的依赖接口有添加到spring容器中了。

       如果单单打包一个api的接口是不会有实现类去引用这个接口的,所以就不会扫描到这个接口也不会将接口加载到spring容器中。所以只需要将整个provider打包后才会扫描到这个接口,才会注册到spring容器中。

 

       对于maven打包的这个问题,本次我是在排查问题中反向想到的。其实真正使用maven打包的api jar包也是需要将整个父项目打包的。还是maven基础差啊。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

dubbo+springMVC消费端报错classNotFound 的相关文章

随机推荐

  • T265相关使用

    0 查看相机配置信息 rs enumerate devices 1 读取相机内外参信息 rs enumerate devices c 图像数据发布的Topic 图像数据30Hz camera fisheye1 camera info cam
  • vins-fusion中的GPS和VO融合

    https blog csdn net hltt3838 article details 109725845 这个帖子还蛮有价值的 GPS进行更新的时候 xff0c 需要寻找与VIO时间戳相对应的GPS消息 根据 43 10ms的时间偏差找
  • 玩转NVIDIA Jetson AGX Xavier

    最近项目应用需要部署到边缘模块 xff0c 所以就玩起了Xavier 感觉网上的资料不多 xff0c 所以从头记录一下笔记 xff0c 方便大家一起学习应用 玩转NVIDIA Jetson AGX Xavier 1 刷机 xff08 安装s
  • 素数伴侣 java

    span class token keyword package span span class token namespace com span class token punctuation span patience span cla
  • 分布式系统概念和设计-分布式文件系统服务体系结构和实践经验

    分布式系统概念和设计 文件系统的特点 负责文件的组织 xff0c 存储 xff0c 检索 xff0c 命名 xff0c 共享和保护 文件包含数据和属性 数据 xff1a 包含一系列数据项 8比特的字节 xff0c 读写操作可访问任何一部分数
  • ROS(C++)中的subscribe使用

    subscribe函数用于订阅topic并添加回调函数 比如 xff1a cloud subs span class token operator 61 span nh span class token punctuation span s
  • 基于人工标识的机器人定位方法

    基于人工标识的机器人定位方法 qquad 在机器人视觉导航任务中 xff0c 常常需要通过识别人工标识获得机器人在世界坐标系中的位姿 它的原理是通过匹配人工标识中特征点的世界坐标和图像坐标 xff0c 从而估算机器人坐标系与世界坐标系 之间
  • Momenta电话面试笔记

  • Snipaste贴图软件使用方法及快捷键

    文章目录 snipaste介绍1 截图2 标注3 贴图 snipaste是一款专业的免费截图软件 它帮助用户轻松解决截图 拼图 图像编辑等多种问题 xff0c 是最受用户喜欢的截图工具之一 snipaste介绍 Snipaste是一款免费安
  • kubernetes 如何发音?

    原文链接地址 xff1a 阳明的博客 有很多人不知道kubernetes应该怎么发音 xff0c 包括我之前也读错了 xff0c 正确的发音是 kub netis xff0c 重音在第三个音节 xff0c 读音 xff1a 库伯耐踢死 xf
  • sonic如何写ACL

    一 目前ACL配置需要用到openconfig json格式去操作 xff1b ACL full update an ACL rule definition file will be provided in openconfig json
  • 最近学习的德雷福斯模型

    德雷福斯模型 技术领域来讲 xff1a 个人对某种技能的掌握程度分为5个阶段 阶段一 xff1a 新手 新手在使用某种技能的人群中占比小于10 他们没有或只有很少的经验 xff0c 不知道自己的行为是对是错 xff0c 需要有人指导或者参考
  • 串级PID

    文章来源 xff1a 到底什么是串级PID xff1f 什么是串级PID 什么是串级PID xff1f 顾名思义就是两个串起来的PID xff0c 下面是一个双闭环的例子 xff0c 外环是位置环 xff0c 内环是速度环 xff0c 最终
  • 嵌入式工程师应对中年危机的上中下策

    文章来源 xff1a 电子通信 xff0c 嵌入式工程师应对中年危机的上中下策 之前火哥有一篇为什么电子通信 xff0c 嵌入式工程师会有中年危机的文章 xff0c 给出了一些中年危机的原因分析 xff0c 但是并没有给意见 这篇文章我们继
  • Action 详解

    回到首页 Action 是用于处理请求操作的 xff0c 它是由 StrutsPrepareAndExecuteFilter 分发过来的 在 Struts2 框架中 xff0c Action 是框架的核心类 xff0c 被称为业务逻辑控制器
  • ADRC学习笔记( 一)

    近期正在自学自抗扰技术 xff0c 不得不感叹韩老师乃神人也 xff01 话不多说先把这两天的学习成果与大家分享 xff0c 后续在做详细的介绍 欢迎大家批评指正 xff08 1 xff09 过渡过程 输入一个阶跃信号 xff0c 其跟踪效
  • ADRC学习笔记(二)

    添加链接描述源码1 最速跟踪微分器TD 它的离散表达式为 xff1a 参数中 xff1a V t 是目标值h h0为积分步长 xff0c 一般来说h可以等于h0 xff0c 但是为了减少超调和减少震荡 xff0c 才把他们分开 xff0c
  • 基于LQR的一阶倒立摆控制仿真

    1 LQR简介 LQR linear quadratic regulator 即线性二次型调节器 xff0c 其对象是现代理论中以状态空间形式给出的线性系统 LQR最优设计是指设计出的状态反馈控制器 K要使二次型目标函数J 取最小值 而 K
  • 神经网络中Batch和Epoch之间的区别

    来自蜂口知道公众号 随机梯度下降法是一种具有大量超参数的学习算法 通常会使初学者感到困惑的两个超参数 Batch大小和Epoch数量 它们都是整数值 xff0c 看起来做的事情是一样的 在这篇文章中 xff0c 您将发现随机梯度下降中Bat
  • dubbo+springMVC消费端报错classNotFound

    首先 xff0c 说明一下我的错误原因 xff1a 是因为provider端打jar包方式的错误 导致的 xff0c 如果你已经将这种错误可能排除了 xff0c 就不用浪费时间看我啰嗦了 maven基础比较弱 xff0c 之后系统学一下吧