当前位置: 移动技术网 > IT编程>开发语言>Java > eureka相关异常

eureka相关异常

2019年02月13日  | 移动技术网IT编程  | 我要评论

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;
    }
}

否则也会报上述错误

  1. 二是再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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网