最近在学习SpringCloud,在结合Spring-Security给Eureka添加安全认证时,Eureka虽能成功启动,但是一访问页面就报如下错误,FreeMarker template error (DEBUG mode; use RETHROW in production!): The following has evaluated to null or missing: ==> replica.key [in template "eureka/navbar.ftl" at line 68, column 62] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${replica.key} [in template "eureka/navbar.ftl" at line 68, column 60] - Reached through: #include "navbar.ftl" [in template "eureka/status.ftl" at line 22, column 7] ---- Java stack trace (for programmers): ---- freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...] at 

最后排查是配置文件写错了,

我的配置,

defaultZone: http//:${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka/

正确的写法,

http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka/

不得不说,自己真的是太粗心了,除此之外,在网上看到一些其他的案例,

client:
 register-with-eureka: false  此配置设置为true也会出现该问题
spring:
  security:
    user:
      name: admin
      password: root    用户名密码中使用了诸如@符号的特殊字符也会出现该问题

总结下,如果出现该异常,仔细检查下自己的application.yml文件,肯定是某个配置写错了!

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐