zoukankan      html  css  js  c++  java
  • eureka相关异常

    1. eureka相关异常

    1.1. 异常信息

    Error creating bean with name 'eurekaAutoServiceRegistration': Singleton bean creation not a
    

    1.2. 解决

    1. 上述异常我在两处地方遇到过,一是在集成txLCN分布式服务时,用到eureka注册的时候,需要额外添加两个配置类
    package com.zhiyis.framework.service.tx;
    
    import com.codingapi.tx.netty.service.TxManagerHttpRequestService;
    import com.lorne.core.framework.utils.http.HttpUtils;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.stereotype.Service;
    
    /**
     * create by lorne on 2017/11/18
     */
    
    @Service
    @Slf4j
    public class TxManagerHttpRequestServiceImpl implements TxManagerHttpRequestService{
    
        @Override
        public String httpGet(String url) {
            log.info("httpGet-start");
            String res = HttpUtils.get(url);
            log.info("httpGet-end");
            return res;
        }
    
        @Override
        public String httpPost(String url, String params) {
            log.info("httpPost-start");
            String res = HttpUtils.post(url,params);
            log.info("httpPost-end");
            return res;
        }
    }
    
    
    package com.zhiyis.framework.service.tx;
    
    import com.codingapi.tx.config.service.TxManagerTxUrlService;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Service;
    
    /**
     * create by lorne on 2017/11/18
     */
    @Service
    @Slf4j
    public class TxManagerTxUrlServiceImpl implements TxManagerTxUrlService {
    
    
        @Value("${tm.manager.url}")
        private String url;
    
        @Override
        public String getTxUrl() {
            log.info("load tm.manager.url :{}", url);
            return url;
        }
    }
    
    

    否则也会报上述错误
    2. 二是再junit的Test类中,用@SpringBootTest创建测试的时候,若是报上述错误,可通过在任意spring能扫到的位置添加一个类即可

    package com.zhiyis.framework.lock;
    
    import org.springframework.beans.BeansException;
    import org.springframework.beans.factory.config.BeanDefinition;
    import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
    import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
    import org.springframework.stereotype.Component;
    
    import java.util.Arrays;
    
    @Component
    public class FeignBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
    
        @Override
        public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
            if (containsBeanDefinition(beanFactory, "feignContext", "eurekaAutoServiceRegistration")) {
                BeanDefinition bd = beanFactory.getBeanDefinition("feignContext");
                bd.setDependsOn("eurekaAutoServiceRegistration");
            }
        }
    
        private boolean containsBeanDefinition(ConfigurableListableBeanFactory beanFactory, String... beans) {
            return Arrays.stream(beans).allMatch(b -> beanFactory.containsBeanDefinition(b));
        }
    }
    

    参考 https://blog.csdn.net/lililuni/article/details/83105045

  • 相关阅读:
    前端三剑客之css 后续
    前端三剑客之css
    优酷项目遇到的知识点回顾
    MySQL 里 视图,触发器,事物,存储过程,内置函数,流程控制,索引
    mysql的用户管理
    数据库管理工具 navicat 相关的练习
    MySQL 单表查询,多表查询
    MySQL 外键 表与表的关系 多对一,多对多,一对一,表的修改 与 复制
    ORM基础
    Django路由系统
  • 原文地址:https://www.cnblogs.com/sky-chen/p/10366196.html
Copyright © 2011-2022 走看看