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

  • 相关阅读:
    http://www.17sucai.com/
    vs2010 开发过程中调试时 有错误不中断
    dev 激活没有权限问题
    华为设备板卡类别
    CentOS6.8安装python2.7以及XX-Net
    PHP之封装一些常用的工具类函数
    PHP环境配置
    Ajax接收不到PHP return后的结果的原因
    PHP实现删除数组中的特定元素
    PHP用单例模式实现一个数据库类
  • 原文地址:https://www.cnblogs.com/sky-chen/p/10366196.html
Copyright © 2011-2022 走看看