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

集成nacos2.2.1出现的错误汇总

总结

1.jdk问题  jdk要一致

2.idea使用问题 idea启动nacos要配置,idea启动类要启动两次,并配置两次vm参数

3.项目依赖问题 依赖要正确添加,有的模块就是不能用公共模块的pom配置,需要独立配置,先后启动顺序也要注意变换

4. properties文件内容 一定要给本地初始值,不能就启动不了;同时要和网站上配置的dataId对应,还有命名空间也要对应

流程简介:

1. idea里打开nacos

2. 官网创建配置

打开官网 https://nacos.io 或者你自己的console网址,在启动标志右边会给出,直接ctrl+点击可进入网址。密码和用户都默认nacos,更改的话在nacos下载文件的appliaction,properties里可改。

根据需求进行填充,这里要和后面项目中的bootstrap.properties和controller对应,可直接照抄。

3. 确定jdk 系统jdk  idea项目jdk   maven jdk  项目pom.xml jdk 都要一致,语言也一致

jdk 8,17 都可以,我用的17。

4. 依赖添加:springboot版本为3.0.0,springcould 2022.0

父模块train新增依赖:

          <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2022.0.0.0-RC1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

需要用到nacos的子模块member增加依赖:


        <!-- 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <!-- 注册中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--SpringBoot 2.4版本之后 SpringCloud 2020,需要引入该依赖,才能读取bootstrap文件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

5. member模块 com.jiawa.train.member.controller包下,测试文件和配置文件添加:

1) MemberApplication类 报错的话,执行mvn clean install,success就不会爆红了


@SpringBootApplication
@ComponentScan("com.jiawa") //根据自己的包结构更改
@MapperScan("com.jiawa.train.*.mapper") //如果你没有生成mapper持久层包可以不要这个注解,根据自己的包结构更改
public class MemberApplication {


    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(BusinessApplication.class);

        //下面几行都可以去掉,是打印日志
        Environment env = app.run(args).getEnvironment();
        LOG.info("启动成功!!");
        LOG.info("测试地址: \thttp://127.0.0.1:{}{}/hello", env.getProperty("server.port"), env.getProperty("server.servlet.context-path"));

    }
}
package com.jiawa.train.member.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController //必须加
@RefreshScope //实时更新可不加
public class TestController {

    @Value("${test.nacos}")
    private String testNacos;

    @GetMapping("/hello")
    public String hello() {
        return String.format("Hello %s!", testNacos);
    }
}

//这里定义方法为hello,参数为test.nacos 初始值是配置文件里的1

2) resources下 

application.properties文件:

server.port=8001 //必须要,自己定义

test.nacos=1 //自定义,本地配置,必须给初始值,不然启动不了,如果读取不到远程也会拿这个值

-----------------------------------------------------------------------------------
server.servlet.context-path=/member //这个是配置了gateway模块转发需要,可以去掉

# 数据库连接 可以去掉这部分
spring.datasource.url=jdbc:mysql://localhost:3306/train_member?time_zone="+8:00"
spring.datasource.username=train_member
spring.datasource.password=member
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# mybatis xml路径 可以去掉
mybatis.mapper-locations=classpath:/mapper/**/*.xml
logging.level.com.jiawa.train.member=trace


bootstrap.properties文件:

##下面三个值拼起来就是 页面上我们配置的dataId:member-dev.properties
spring.application.name=member
spring.profiles.active=dev
spring.cloud.nacos.config.file-extension=properties

## nacos 地址 127.0.0.1是本机默认地址,等效于localhost;8848是nacos默认端口
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

# nacos 命名空间 默认是public 这两行可以不写
spring.cloud.nacos.config.namespace=public
spring.cloud.nacos.discovery.namespace=public

 

3.启动项添加 VM参数,才能和nacos连接起来

第一次运行:

同一个地方,修改vm参数为 -Dspring.profiles.active=dev,再运行一次,每次修改了内容都要重新运行,(如果你配置了热部署,会启动,但是还是要手动刷新,才能正确运行拿到正确内容)

正确启动:出现127.0.0.1_8848才是成功,如果没有,就算没有报错,也是失败了,只会读取本地内容,不会读取远程的配置。

这里我的启动成功,但启动的是common模块,不是我想要的member模块,

原因是member还没有成功过,我就把member模块里的pom.xml新增内容放到common模块(这样所有模块都可以共用配置,member模块是已经引入了common模块的),同时添加了spring.application.name=common。

解决方法:在common模块pom里去掉新增配置,并去掉spring.application.name=common;在member模块里添加回新增配置,重新运行出现member再把pom配置,spring.application.name=common添加回去。

3. 查看是否拿到远程,并是否有服务

1)网址:localhost:8001/member/hello

2)  官网:

相关文章:

  • Java 设计模式:责任链模式详解
  • spring mvc @ResponseBody 注解转换为 JSON 的原理与实现详解
  • 解决Spring Boot上传默认限制文件大小和完善超限异常(若依框架)
  • tailwindcss 4 使用的一些注意点
  • 20250408-报错:pre_state = state同更新现象
  • PortswiggerLab:Exploiting a mass assignment vulnerability
  • 【C#知识点详解】List<T>储存结构详解
  • Python 字典和集合(字典推导)
  • 美国NAB展会次日实况
  • C++ 基类的虚析构函数与派生的析构函数关系
  • Reflexion 框架 | 提示词工程(4)
  • HOW - React 组件渲染受其他无关数据影响和优化方案(含memo和props.children)
  • equals() 和 hashCode()
  • 泛目录站群,无极多功能泛目录站群程序:AI驱动的SEO增长引擎
  • java设计模式-单例模式
  • 【unity游戏开发入门到精通——动画篇】Animator2D序列帧动画
  • 解锁健康养生密码,拥抱活力人生
  • 手写数字识别实战教程:从零实现MNIST分类器(完整代码示例)
  • 算法篇(八)【递归】
  • 【代码随想录 字符串6.实现strstr】 KMP算法。
  • 新疆交通建设集团网站/关键词检测工具
  • wordpress不发送邮件/淘宝seo是什么意思啊
  • 做盗版电影网站教程/网络品牌推广
  • 建设网站步骤是/域名注册要多少钱
  • 北风淘淘网站开发/大搜推广
  • 档案网站建设网页/网络广告联盟