Java启动报错记录

2023-10-27

Java启动报错记录

 错误现象起源

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.xz.unity.busi.question.service.QuestionImportService required a bean of type 'com.xz.questioncloud.provider.api.questions.QuestionDubboService' that could not be found.


Action:

Consider defining a bean of type 'com.xz.questioncloud.provider.api.questions.QuestionDubboService' in your configuration.


Process finished with exit code -1

根据上图显示找到引用的类 QuestionDubboService的地方

package com.xz.unity.busi.question.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xz.questioncloud.common.base.model.domain.question.Question;
import com.xz.questioncloud.provider.api.questions.QuestionDubboService;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.springframework.stereotype.Service;

/**
 * @description: 
 * @author: HuangZheng
 * @date 2021/1/7
 **/
@Service
@RequiredArgsConstructor
public class QuestionImportService {

    @DubboReference
    private final QuestionDubboService questionDubboService;

    private final SysUserService sysUserService;


    public Page<Question> listPage(String subjectId, String questionType, Integer studyStage, String status, Integer pageNum, Integer pageSize) {
        return questionDubboService.listPage(null, null, null, null, pageNum, pageSize);
    }
}

并没有发现明显错误,直到看到 @RequiredArgsConstructor和@DubboReference注解

@RequiredArgsConstructor: 是Lombok插件,会生成一个包含常量 final,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private

@Reference是dubbo的注解,也是注入,他一般注入的是分布式的远程服务的对象,需要dubbo配置使用。

首先加入@RequiredArgsConstructor注解是为为了初始化引入的对象,不然会报空指针异常这是构造函数的目的;QuestionDubboService因为添加了final修饰符所以由上面可知@RequiredArgsConstructor会为final生成构造函数。

但是QuestionDubboService是Dubbo的远程对象在jar包中引入的并不能初始化分配不了内存也就构造函数构造不出来,这个错没有显示的引出来可以如下显示出来理解原理

 所以千万不要对于远程的接口添加final修饰符用来初始化。他们有自己的初始化注解这里是@DubboReference所以正确的写法如下:

@Service
public class QuestionImportService {

    @DubboReference
    private  QuestionDubboService questionDubboService;


    public Page<Question> listPage(String subjectId, String questionType, Integer studyStage, String status, Integer pageNum, Integer pageSize) {
        return questionDubboService.listPage(null, null, null, null, pageNum, pageSize);
    }
}

 以后还是想想注解有啥用再加上吧!

 

 

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

Java启动报错记录 的相关文章

随机推荐

  • 二叉树中的dfs

    上周去华为面试的时候 遇到了一个自己以前积累过的dfs问题 当时觉得dfs的问题不需要搞懂每一步到哪里了 只需要大体上知道怎么弄套模板就可以 后来现场画那个dfs的图 以及每个状态的变化 虽然画出来了 但是觉得还是要好好思考下这些问题 毕竟
  • Argparse 教程

    https docs python org zh cn 3 howto argparse html
  • Qt中的一些常用类

    目录 1 QString 字符串类 2 容器类 2 1 QList 2 2 QMap 3 跨平台数据类型 4 时间和日期处理 5 QTimer 定时器类 1 QString 字符串类 QString是Qt中的字符串类 使用Unicode编码
  • LeetCode 面试题04. 二维数组中的查找(Python)

    题目 注意 本题与主站 240 题相同 https leetcode cn com problems search a 2d matrix ii 来源 力扣 LeetCode 链接 https leetcode cn com problem
  • java.lang.ClassCastException: java.math.BigDecimal cannot be cast to java.lang.Double

    报错 java lang ClassCastException java math BigDecimal cannot be cast to java lang Double 原因 类型转换异常 这里要从map里面取出坐标点然后存起来 直接
  • 怎么用matlab保存音频文件,Matlab用图片和音频藏文件(续)

    上一篇文章讲到通过Matlab实现图片隐藏文件 这一篇我使用C 调用Matlab编译的 Net程序集构建了一个小的应用程序 原理很简单 使用上一篇文章中的Matlab代码 写成两个函数 分别用来隐藏和解析 代码如下 function sav
  • 2023年最新前端面试题汇总大全二(含答案超详细,Vue,TypeScript,React,微信小程序,Webpack 汇总篇)-- 持续更新

    HTML篇 CSS篇 JS篇 Vue篇 TpeScript篇 React篇 微信小程序篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总二 逐步更新 五 Vue 篇 1 谈谈你对MVVM开发模式的理
  • conda常用的指令:创建、切换环境、第三方库的安装说明。

    conda在安装完成之后 我想查看一下我是否安装成功了conda 可以通过按下键盘上的window R 打开cmd指令 如下图所示 打开之后 在命令行输入 conda version 即可查看你当前所安装的Anconada的版本号 如下图所
  • 消息队列(message queue)

    消息队列提供了一种在两个不相关的进程之间传递数据的相当简单且有效的办法 消息队列和共享内存优于管道的原因 消息队列机制中 双方通过消息来通信 无需花费精力从字节流中解析出完整的消息 每条消息都有type字段 消息的读取进程可以通过type字
  • 模拟搭建2022网络系统管理比赛Linux模块的环境

    由于国赛通知 今年的Linux模块需要使用centos7以上或者统信UOS系统 之前还准备了很久的debian10 真是心累 准备工作 准备四台centos7 5的虚拟机 ssh工具使用SecureCRT 其中Rserver作为路由转发的服
  • java自学第三天

    vscode配置java运行环境 第一种方法 1 插件市场找debugger forjava extension pack for java 2 以管理员身份运行cmd 将路径转换到jdk安装路径 复制下面的命令运行 生成jre bin j
  • 【icon】:可在Markdown随意插入的表情符号集大全,简单复制粘贴法,2种在线实时检索法,釜底抽薪的快捷键法

    这些表情符号集 图标ICONS 可增强美观性 让读者阅读技术博客时 提升精气神 复制粘贴法 用户可直接复制 并在CSDN文章的任意处进行粘贴 在线检索法 用户进入emojipedia网站后 检索所需 复制 粘贴即可 釜底抽薪法 用户可自由选
  • pyecharts画饼形图,圆形图,环形图(含百分比显示)【python干货】

    很多做数据分析可视化的朋友总会遇到一些烦恼 用pyecharts绘制饼形图 圆形图 的时候 总会报错 废话不多说 下面跟着小编上车吧 教你用pyecharts绘制饼形图 圆形图 环形图从小白到精通 1 饼形图 圆形图 导入模块 from p
  • Oracle11g客户端的安装及配置

    笔记 安装包下载路径 http pan baidu com s 1i31gqTf 一 解压缩之后 点击setup 运行 会弹出一个黑框 耐心等待几秒之后 按照如下地址下一步配置即可 http www 2cto com database 20
  • Sublime Text无法找到Install Package

    问题描述 使用Sublime Text时 ctrl shift p输入Install Package命令失败 解决方案 需要安装Package Control包 进入Package Control安装网站 Installation Pack
  • JAVA学习-限量算法

    一 限流基础知识介绍 为啥要限流 相信就不用我多说了 比如 我周末去饭店吃饭 但是人太多了 我只能去前台拿个号 等号码到我的时候才能进饭店吃饭 如果饭店没有限流怎么办 一到饭点 人都往里冲 而饭店又处理不了这么多人流 很容易就出事故 饭店塞
  • 日志存储

    文件目录布局 一个分区副本在节点上对应一个log文件夹 同时kafka为了防止文件过大引入了logSegment概念 将log切分成了多个logSegment 相当于将一个大文件切分成多个小文件 logSegment又对应磁盘上多个文件 一
  • [云原生专题-64]:云原生技术助力5G RAN步入”云”霄 - 对云原生的理解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 123084611 目录 一 在后5G时
  • 5G新基建 边缘计算乘风破浪

    2019年6月6日 工信部向中国电信 中国移动 中国联通 中国广电发放5G商用牌照 这意味着中国正式进入5G元年 一年以来 随着基站的建设与用户认知的提升 5G应用如雨后春笋般涌现 而在今年上半年频繁被提及的 新基建 中 5G也将作为通信网
  • Java启动报错记录

    Java启动报错记录 错误现象起源 APPLICATION FAILED TO START Description Parameter 0 of constructor in com xz unity busi question servi