解决nacos报错java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的问题

 更新时间:2024年06月15日 10:27:13   作者:时间是一种解药  
这篇文章主要介绍了解决nacos报错java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的问题,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nacos报错java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory

问题背景

使用LoadBalancerClient报错java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory

java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_221]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_221]
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_221]

解决方案

1 找不到类,说明没有引入这个依赖,然后看了一下nacos引入了,,但排除了很多依赖,这个核心被排除掉了,所以报错

                <exclusion>
                    <artifactId>archaius-core</artifactId>
                    <groupId>com.netflix.archaius</groupId>
                </exclusion>

2 正常引入的依赖,因为引入了其他很多东西,所以排除了,很多根据自己需要把排除删除掉

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
            <version>2.2.0.RELEASE</version>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>HdrHistogram</artifactId>
                    <groupId>org.hdrhistogram</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-cloud-commons</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-codec</artifactId>
                    <groupId>commons-codec</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>commons-lang3</artifactId>
                    <groupId>org.apache.commons</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>httpclient</artifactId>
                    <groupId>org.apache.httpcomponents</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-cloud-starter</artifactId>
                    <groupId>org.springframework.cloud</groupId>
                </exclusion>
            </exclusions>
        </dependency>

nacos启动常见错误

1. Could not find or load main class

Error: Could not find or load main class
Caused by: java.lang.ClassNotFoundException:

解决办法:

x JAVA_OPT_EXT_FIX="-Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext"
√ JAVA_OPT="${JAVA_OPT} -Djava.ext.dirs=${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext"
x echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}"
√ echo "$JAVA ${JAVA_OPT}"
x echo "$JAVA $JAVA_OPT_EXT_FIX ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
x nohup "$JAVA" "$JAVA_OPT_EXT_FIX" ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
√ echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
√ nohup $JAVA ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &

2. Please set the JAVA_HOME variable in your environment

which: no javac in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
readlink: missing operand
Try 'readlink --help' for more information.
dirname: missing operand
Try 'dirname --help' for more information.
ERROR: Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better! !!

查找原因:

  • 输入echo $JAVA_HOME结果为空
  • 说明没有配置java环境变量

解决办法:

  • 配置JAVA环境变量

2.1 找到jdk安装路径

[root@localhost bin]# ls -lrt /usr/bin/java
lrwxrwxrwx 1 root root 22 Mar 15 09:59 /usr/bin/java -> /etc/alternatives/java
[root@localhost bin]# ls -lrt /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Mar 15 09:59 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java
[root@localhost bin]# cd /usr/lib/jvm
[root@localhost jvm]# ll
total 4
drwxr-xr-x 3 root root 4096 Mar 15 09:59 java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64
lrwxrwxrwx 1 root root   21 Mar 15 09:59 jre -> /etc/alternatives/jre
lrwxrwxrwx 1 root root   27 Mar 15 09:59 jre-1.8.0 -> /etc/alternatives/jre_1.8.0
lrwxrwxrwx 1 root root   35 Mar 15 09:59 jre-1.8.0-openjdk -> /etc/alternatives/jre_1.8.0_openjdk
lrwxrwxrwx 1 root root   51 Mar 15 09:59 jre-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64 -> java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre
lrwxrwxrwx 1 root root   29 Mar 15 09:59 jre-openjdk -> /etc/alternatives/jre_openjdk
2.2 在/etc/profile文件下添加以下代码并执行
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/          
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
 
[root@localhost ~]# source /etc/profile

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用React和springboot做前后端分离项目的步骤方式

    使用React和springboot做前后端分离项目的步骤方式

    这篇文章主要介绍了使用React和springboot做前后端分离项目的步骤方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 如何简单的理解依赖注入详解

    如何简单的理解依赖注入详解

    一直对依赖注入理解不清楚,最近突然理解了,所以下面这篇文章主要给大家介绍了关于如何简单的理解依赖注入的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • MyBatis的@SelectProvider注解构建动态SQL方式

    MyBatis的@SelectProvider注解构建动态SQL方式

    这篇文章主要介绍了MyBatis的@SelectProvider注解构建动态SQL方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • Java中Lambda表达式用法介绍

    Java中Lambda表达式用法介绍

    本文详细讲解了Java中Lambda表达式的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Java对象转换的方案分享

    Java对象转换的方案分享

    这篇文章主要介绍了Java对象转换的方案分享,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09
  • Java使用Redis的方法实例分析

    Java使用Redis的方法实例分析

    这篇文章主要介绍了Java使用Redis的方法,接合实例形式分析了相关redis驱动包安装、java连接redis服务器、数据存储、读取等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • Java中 % 与Math.floorMod() 区别详解

    Java中 % 与Math.floorMod() 区别详解

    这篇文章主要介绍了Java中 % 与Math.floorMod() 区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • struts2中常用constant命令配置方法

    struts2中常用constant命令配置方法

    这篇文章主要介绍了struts2中常用constant命令配置方法,需要的朋友可以参考下
    2016-09-09
  • 详解Spring中Bean的作用域与生命周期

    详解Spring中Bean的作用域与生命周期

    Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的作用域与生命周期是非常必要的。这篇文章将问你详解一下Bean的作用域与生命周期,需要的可以参考一下
    2021-12-12
  • Java多线程的原子性,可见性,有序性你都了解吗

    Java多线程的原子性,可见性,有序性你都了解吗

    这篇文章主要为大家详细介绍了Java多线程的原子性,可见性,有序性,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03

最新评论