Spring Config Server - 没有这样的标签:master

时间:2016-10-13 14:43:15

标签: spring-boot spring-cloud-netflix spring-cloud-config

我有一个简单的Spring Cloud Config Server,它使用git服务器的配置。

ConfigServer bootstrap.yml:

spring:
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri: ssh://git@mydomain:myport/myrepo.git
          searchPaths: "configurations/{application}/{profile}"
server:
  port: 8888

当我在本地部署ConfigServer时,我可以从http://localhost:8888/myapp/test检索配置。但是当我在测试服务器上部署ConfigServer时,当我点击No such label: master时它会抛出http://testserverip:8888/myapp/test

非常感谢任何帮助!

enter image description here

9 个答案:

答案 0 :(得分:2)

当您的服务无法访问Git存储库时会发生这种情况。 既然您可以启动应用程序,我认为测试服务器可以访问Git。您应该为您的Git服务器设置SSH身份验证。您可以检查this site以获取SSH配置。

答案 1 :(得分:2)

我也遇到了同样令人讨厌的情况。

我将首先说明如何解决此情况,然后再强调我在以前的方法中所犯的错误。 就我而言,我正在使用application.properties

我的应用程序概述如下所示: 我有一个配置服务器,该服务器是集中式的,并向各个微服务提供各自的配置数据。

例如,微服务“限制服务”需要一些配置数据,它是从中央配置服务器(“ spring-cloud-config-server”)获取的。 因此,为了实现这一点,“限制服务”查询中央配置服务器,该服务器依次从远程git分支(“ spring-cloud-samples”)中获取请求的数据。

                            ┌---------------------- <--> [currency-exchange-service]
    [git] <--> [spring-cloud-config-server] ------- <--> [limits-service] 
                            └---------------------- <--> [currency-conversion-service]

解决方案:

我只是为所有配置文件创建了一个新的Git存储库(spring-cloud-samples),这些文件将由多个微服务通过中央配置服务器使用。

在中央配置服务器(“ spring-cloud-config-server”)的application.properties文件中,我提供的属性为:

spring.cloud.config.server.git.uri=https://github.com/{username}/{git-reponame.git}

可能看起来像

spring.cloud.config.server.git.uri = https://github.com/alice123/spring-cloud-samples.git 就是这样!

启动我的Central-config-server并观察以下日志:

2020-02-17 05:25:07.867  INFO 15000 --- [nio-8888-exec-9] o.s.c.c.s.e.NativeEnvironmentRepository  : Adding property source: file:/D:/Users/{userName}/AppData/Local/Temp/config-repo-3453413414/limits-service.properties

此外,我还通过我的'limits-service'使用了配置数据,它像一个魅力一样起作用!

我尝试了以下导致失败的事情 ,并大喊大叫。 XD

我正在发布它,以便尝试使用相同概念的人可以节省一夜的工作或更少的:p

1)最初,我在Central-config-server的application.properties文件中使用Git存储库SSH URL,如下所示:

spring.cloud.config.server.git.uri=git@github.com:alice123/spring-cloud-samples.git
spring.cloud.config.server.git.username=alice123
spring.cloud.config.server.git.password=alice123Pwd

这导致了以下错误:

2020-02-17 05:22:45.091  WARN 15000 --- [nio-8888-exec-1] .c.s.e.MultipleJGitEnvironmentRepository : Error occured cloning to base directory.
org.eclipse.jgit.api.errors.TransportException: git@github.com:aniketrb-github/spring-cloud-samples.git: Auth fail

2)之后,我尝试从本地/本地git目录读取配置数据,该目录指向我的Git远程分支(spring-cloud-samples) 然后,在我的application.properties文件中提供了以下内容:

spring.cloud.config.server.git.uri=file://D:\aniket-workspace\github-ws\microservices\udemy-microservices\git-localconfig-repo

此崩溃的原因:

java.lang.IllegalStateException: Failed to load property source from location 'classpath:/application.properties'

3)之后,经过足够的谷歌搜索,我将上面的属性更改为有效的下面!!:

spring.cloud.config.server.git.uri=D:\\\\alice-workspace\\\\github-ws\\\\microservices\\\\git-localconfig-repo

当尝试从“ spring.cloud.config.server”中获取配置数据时,“ limits-service”最终失败,并显示以下错误:

404: Not Found - "org.springframework.cloud.config.server.environment.NoSuchLabelException: No such label: master"

由于上面提到的所有失败,我已经说过的解决方案对我有用。 如果我写错了,请纠正我;如有必要,请即兴创作。我希望这会有所帮助并节省一些关键的时间。

参考:spring-cloud-confighttps-or-sshgit-ssh-windowsgit-ssh-windows-troubleshooting

答案 2 :(得分:1)

GitHub创建了默认分支“ main”,但是Spring cloud Config正在寻找“ master分支”。我已经创建了一个“主”分支,并且成功了!

答案 3 :(得分:0)


希望你一切都好。
我正在使用STS 4,并从本地git repo添加了用于弹簧云配置的源链接文件夹(本地git repo)。
我也遇到过相同的问题,
我只是将反斜杠改为正斜杠。
当我这样使用

local $_

我出错了

spring.cloud.config.server.git.uri=file://C:\Users\coder\Desktop\spring material\in28microservies\git-localconfig-repo

然后我只是在配置服务器属性文件中用正斜杠替换了所有反斜杠,
对我有用

2020-04-04 14:57:37.874 ERROR 6952 --- [nio-8888-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot load environment] with root cause
java.lang.IllegalStateException: Cannot convert uri to file: file://C:UserscoderDesktopspring materialin28microserviesgit-localconfig-repo

答案 4 :(得分:0)

这肯定可以工作!!! :)

1),如果您是第一次初始化存储库,则必须按照以下方式提交更改以显示 master 特定文件夹

> git add -A .
> git commit -m "added prop..."

2)重新运行该项目并点击相同的URL。

Njoy:)

答案 5 :(得分:0)

spring.profiles.active=native
spring.cloud.config.server.native.searchLocations=file://<location>

尝试以下我们的朋友提到的方法:

https://stackoverflow.com/a/33179106/1908827

答案 6 :(得分:0)

当您创建新的存储库时,如今git将“ main”作为默认分支而不是master。这个问题就是这个。

手动创建“ master”分支。它将解决所有这些问题。

答案 7 :(得分:0)

对我来说,这是由于我的默认分支“ main”引起的。每当创建新分支时,默认分支就不再是“ main”而不是“ master”。但是Spring服务器配置会寻找主分支。 快速的解决方案是从“主要”分支中签出一个名为“主”的新分支。并尝试从Spring配置服务器。就是这样。

从主分支创建一个新分支。首先指向主分支并从那里开始

git checkout -b主 git push --set-upstream原始主机

重新启动配置服务器并进行测试

答案 8 :(得分:0)

我知道我很晚才发布此答案。但是,仍然发布它,以便其他人可以发现此帮助。现在,GitHub的默认分支名称为“ main”,但Spring Cloud Config仍在寻找“ master”作为标签名称。因此,如果您想更改默认行为,则可以随时使用application.ymlapplication.properties中的以下属性来更改标签名称:

spring.cloud.config.server.git.default-label=main

这对我来说非常有效。我正在使用Spring Boot 2.3.6.RELEASE