首页 > 其他分享 >eureka-client注册exception——Error creating bean with name ‘scopedTarget.eurekaClient‘ defined in class

eureka-client注册exception——Error creating bean with name ‘scopedTarget.eurekaClient‘ defined in class

时间:2024-08-16 15:16:55浏览次数:11  
标签:netflix defined spring eureka client TransportClientFactories com find jersey

  错误没有截图,不过去看idea内置的日志可以看到“Error creating bean with name ‘scopedTarget.eurekaClient‘ defined in class……”或者“Error starting ApplicationContext. To display the conditions report re-run ...”或者Error processing condition on org.springframework.boot.autoconfigure.elasticsearch.ElasticsearchRestClientConfigurations$RestClientConfiguration又或者

Caused by: java.lang.NullPointerException: Cannot invoke "org.springframework.cloud.netflix.eureka.CloudEurekaClient.getApplications()" because the return value of "org.springframework.cloud.netflix.eureka.serviceregistry.EurekaRegistration.getEurekaClient()" is null。诸如此类的描述。日志往下翻都能看到好几个"cause by",最让我印象深刻的还是第一个错误(或者说你有mongo数据库没有设置好的错误的话是第二个错误)——Could'not find com.netflix.discovery.shared.transport.jersey.TransportClientFactories<?>,下面的解决方案主要是针对这个错误的(其他错误我看了一下我的error日记发现要么是依赖冲突,spring和eureka版本冲突,依赖版本冲突,要么是依赖缺失,如果还不能解决那就看一下下面的解决方案,因为这一段时间我出现的bug都是eureka-client的bug)

  查了一下终于让我找到这个bug的相关解决办法了。参考链接:https://github.com/spring-cloud/spring-cloud-netflix/issues/4185

  先去添加这个依赖:

		<dependency>
			<groupId>com.netflix.eureka</groupId>
			<artifactId>eureka-client-jersey3</artifactId>
		</dependency>

  然后去client模块那里新加一个config配置类。

@Configuration
public class Jersey3TransportClientFactoriesConfig {

    @Bean
    public Jersey3TransportClientFactories jersey3TransportClientFactories() {
        return new Jersey3TransportClientFactories();
    }

}

  然后就可以了。

  这种解决办法其实是自己设置一个transportClient的bean。

  一开始我在找相关资料的时候了解到是eureka和spring的http客户端用的不是同一个东西,eureka用的是jersey,spring用的是restTemplate,然后我就将子pom改成了这样:

<dependencies>
<!--		error:没有某个bean的相关记载,我看了一下是说没有引入依赖web,但是父pom那里又确实引了,-->
<!--		-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<!-- 排除Jersey,用SpringMVC Rest方式,但是据说这个派出了后有另一个问题-->
			<exclusions>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-client</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jersey</groupId>
					<artifactId>jersey-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.sun.jersey.contribs</groupId>
					<artifactId>jersey-apache-client4</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

  (不用管注释)

  再去client模块(也就是子模块)的application.yml那里新加了一项client.transport.rest-template-enabled : true.

  client:
    registerWithEureka: false #不向自身注册。由于该应用为单个注册中心,所以设置为false,代表不向注册中心注册自己
    fetchRegistry: false #不从自身拉取注册信息。由于单个注册中心,不拉取自身信息
    enabled: true
    service-url:
      defaultZone: http://localhost:8108/eureka/
    transport:
      rest-template-enabled: true

  但是没有什么用,该爆这个错还是该爆这个错。

  然后最后就找到了新加一个bean的做法……

标签:netflix,defined,spring,eureka,client,TransportClientFactories,com,find,jersey
From: https://www.cnblogs.com/clina/p/18362912

相关文章

  • CodeForces 1575F Finding Expected Value
    洛谷传送门CF传送门考虑单个序列如何求答案。考虑鞅与停时定理。定义一个局面的势能为\(\sum\limits_{i=0}^{K-1}f(b_i)\),其中\(f(x)\)是一个关于\(x\)的函数,\(b_i\)为\(i\)的出现次数。那么我们要构造\(f(x)\),使得每次操作,局面势能期望减少\(1\),那么期望步数......
  • 对C工程使用GTest与Gmock函数未定义(undefined reference)排错记录
    在使用Gtest过程中出现了一些被测参数和函数未定义的问题调了三天很是头疼1、对象只申明未定义在配置文件中该结构体数组已经被定义完成,错误排除2、使用对象的错误定义(签名不匹配)  C++提供了函数重载,当函数的声明与调用时,输入参数与声明是不同时会报undefinedrefer......
  • python系列&deep_study系列:TOCH_npu不适配报错packages/torchaudio/lib/libtorchaudio
    TOCH_npu不适配报错packages/torchaudio/lib/libtorchaudio.so:undefinedsymbol:_ZNK5torch8autograd4Node4nTOCH_npu不适配报错packages/torchaudio/lib/libtorchaudio.so:undefinedsymbol:_ZNK5torch8autograd4Node4n报错:背景:解决办法:TOCH_npu不......
  • 解决 CentOS Cannot find a valid baseurl for repo
    参考:Fix"Cannotfindavalidbaseurlforrepo"inCentOS-DEVCommunity背景由于CentOS7镜像被移动到vault。当执行yum时,会报错“Cannotfindavalidbaseurlforrepo:base/7/x86_64”。解决将/etc/yum.repos.d/CentOS-Base.repo中的原有内容删除,将其设置为如......
  • flannel容器启动失败,日志报错“Failed to find any valid interface to use: failed t
    现状k8s部署,flannel容器起不来,不断重启,查看日志报错"Failedtofindanyvalidinterfacetouse:failedtogetdefaultinterface:Unabletofinddefaultroute"排查过程根据报错提示,可能是网卡名称奇怪导致,或者没有默认路由查看默认路由很显然是有默认路由的查......
  • `find` 命令详解
    find命令是Unix和类Unix系统(如Linux)中的一个强大工具,用于在目录树中搜索文件和目录。它提供了多种选项来进行复杂的搜索,可以根据文件的名称、类型、时间、大小等条件筛选文件。以下是find命令的详细介绍,包括常用选项和示例。基本语法find[路径][选项][测试条件][操......
  • coca contact with 搭配 FIND SAMPLE 500
    with:520the:268in:170and:133to:94of:92have:59a:58had:57that:56or:41you:40is:39i:37#:36":35he:35come:34from:32into:31their:29we:28who:28any:27people:27his:27was:26they:26no:25not:24as:23are:22make:22other:22has:22bee......
  • 004.Vue3入门,使用绑定属性时undefined和disabled用法
    1、代码如下:<template><divv-bind:id="myId1"v-bind:class="testCls">测试1</div><divv-bind:id="myId2"v-bind:title="testTitle">测试2</div><div:id="myId3":class="te......
  • com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: can not find lamb
    异常提示:com.baomidou.mybatisplus.core.exceptions.MybatisPlusException:cannotfindlambdacacheforthisentity 使用mockito框架做单元测试:mybatisplus使用Lambda表达式做条件查询、条件更新时会遇到mybatis拿不到缓存问题:错误1:com.baomidou.mybatisplus......
  • 3131. Find the Integer Added to Array I
    Youaregiventwoarraysofequallength, nums1 and nums2.Eachelementin nums1 hasbeenincreased(ordecreasedinthecaseofnegative)byaninteger,representedbythevariable x.Asaresult, nums1 becomes equal to nums2.Twoarraysareco......