当前位置: 首页 > 知识库问答 >
问题:

执行器替换时的Springboot启动错误:management.endpoints.jmx.unique-names

史淳
2023-03-14

我试着启用执行器endpoint。但当我尝试访问-http://localhost:8080/loggers/http://localhost:8080/acture/loggers时,我得到404

Springboot版本-2.1.3.release

为此,我在下面添加了build.gradle文件。

 implementation 'org.springframework.boot:spring-boot-starter-actuator'
management.endpoints.web.exposure.include: loggers
management.endpoint.loggers.enabled: true
2020-11-28 15:35:27,093 [] INFO  [org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver] > Exposing 15 endpoint(s) beneath base path '/actuator'
2020-11-28 15:35:27,560 [] INFO  [com.my.test.Application] > Started Application in 71.458 seconds (JVM running for 103.846)
2020-11-28 15:35:27,599 [] WARN  [org.springframework.boot.context.properties.migrator.PropertiesMigrationListener] >
The use of configuration keys that have been renamed was found in the environment:

Property source 'applicationConfig: [classpath:/application.yml]':
        Key: endpoints.jmx.unique-names
                Line: 30
                Replacement: management.endpoints.jmx.unique-names


Each configuration key has been temporarily mapped to its replacement for your convenience. To silence this warning, please update your configuration to use the new keys.

我错过什么了吗?

另外,我还想知道如何用一些凭据保护这个endpoint。我想我可以使用spring security来保护这个endpoint,但是,如果我集成了spring security的话,我不想影响/阻止应用程序中的其他页面。如何做到这一点?

共有1个答案

宇文和昶
2023-03-14

您的配置有问题:在基路径“/actures”下暴露了15个endpoint

这应该可以很好地工作:从具有依赖关系的spring.start.io开始Spring WebSpring Boot执行器

application.yaml

management:
    endpoints:
        web:
            exposure:
                include: loggers
    endpoint:
        loggers:
            enabled: true

java prettyprint-override">
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.actuate.logging.LoggersEndpoint;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.logging.LogLevel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
public class ActuatorLogLevelWithoutRestartApplication {

    public static void main(String[] args) {
        SpringApplication.run(ActuatorLogLevelWithoutRestartApplication.class, args);
    }

}

@RestController
class DemoController {
    private static final Logger logger = LoggerFactory.getLogger(ActuatorLogLevelWithoutRestartApplication.class);

    private LoggersEndpoint loggersEndpoint;

    public DemoController(LoggersEndpoint loggersEndpoint) {
        this.loggersEndpoint = loggersEndpoint;
    }

    @GetMapping
    public String hello() {
        logger.info("hello(): info");
        logger.debug("hello(): debug");
        return "Hello World";
    }

    /* only for demo purpose */
    @GetMapping("/info")
    public String info() {
        logger.info("before change info(): info");
        logger.debug("before change info(): debug");
        loggersEndpoint.configureLogLevel("com.example.demo", LogLevel.INFO);
        logger.info("after change info(): info");
        logger.debug("after change info(): debug");
        return "log level set to INFO";
    }

    /* only for demo purpose */
    @GetMapping("/debug")
    public String  debug(){
        logger.info("before change debug(): info");
        logger.debug("before change debug(): debug");
        loggersEndpoint.configureLogLevel("com.example.demo", LogLevel.DEBUG);
        logger.info("after change debug(): info");
        logger.debug("after change debug(): debug");
        return "log level set to DEBUG";
    }

}
 类似资料:
  • 当我尝试根据文档将执行器添加到Spring Boot应用程序时,我会得到以下堆栈跟踪: UTF-8 1.7 1.1.0 3.1.0 Spring配置如下: 我还错过了什么(或者有冲突???)在pom.xml中?执行器是否需要一个DB? 多谢了。

  • 我知道有好几篇关于这件事的帖子,但没有任何具体的帮助。我有一个Java Springboot rest API,它在localhost上运行良好,但在尝试作为jar运行时会抛出一个错误。 这是我的主要课程: 这是我尝试运行jar文件时的输出: 我的pom。xml是我所有修复这一问题的尝试中的一个烂摊子,但它是: 感谢任何帮助。谢谢你看一看!

  • 我有一个网站。在过滤器的context param和init param中包含变量的xml文件。我想用应用程序启动时从属性文件中获取的值替换这个变量。 我的网络。xml是这样的: 和网络。属性 以下是部署的工作原理: 1) 部署工具读取给定的属性文件,用PROD或Dev值(在该工具中设置的值)替换变量,并将该文件推送到JBoss下的应用程序模块; 2) 在JBoss上启动应用程序的部署。我想要那个

  • 我们什么时候应该使用Spring boot执行器。如果包括在内,它对应用程序内存和CPU使用有多大影响? 我目前正在使用Spring Boot 2. x。

  • 问题内容: 我一直在研究Spring / Spring MVC应用程序,并且希望添加性能指标。我遇到过Spring Boot Actuator,它看起来是一个不错的解决方案。但是我的应用程序不是Spring Boot应用程序。我的应用程序在传统容器Tomcat 8中运行。 我添加了以下依赖 我创建了以下配置类。 我什至可以按照StackOverflow另一篇文章的建议在每个配置类上添加 问题答案:

  • 问题内容: 我是bash脚本的新手,但我不理解为什么它不起作用 第3行的替代替换错误 问题答案: 该替换在Bash 4.2.8中正常工作(并且根据文档看起来还不错)。 我最好的猜测是您实际上并没有使用Bash-您如何调用脚本?如果您正在执行此操作,则可能会与Dash或类似的程序一起运行(Dash确实在第3行给出了替换错误)。尝试使用Bash()显式运行它。 如果事实证明您实际上是在使用Dash,这