You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.1.5版本如何启用/actuator/jolokia端点?

解决Spring Boot中启用Jolokia的问题

单独依赖jolokia-core无法启用Jolokia端点,是因为它仅提供核心功能,缺少Spring Boot所需的自动配置或Servlet注册逻辑。结合你之前在Spring Boot 2.x中可用的情况,以下是针对不同场景的解决方案:

1. 使用Spring Boot专属的Jolokia Starter(推荐)

jolokia-spring-boot-starter会自动完成Servlet注册、端点配置等工作,是Spring Boot集成Jolokia最简便的方式:

Maven依赖

<dependency>
    <groupId>org.jolokia</groupId>
    <artifactId>jolokia-spring-boot-starter</artifactId>
    <version>适配你的Spring Boot版本号</version>
</dependency>

Gradle依赖

implementation 'org.jolokia:jolokia-spring-boot-starter:适配你的Spring Boot版本号'

版本匹配提示:Spring Boot 3.x需使用Jolokia 2.0.0及以上版本(适配Jakarta EE API);Spring Boot 2.x可使用Jolokia 1.x或兼容的2.x版本。

2. 手动注册Jolokia Servlet(若坚持用jolokia-core)

如果不想引入starter,需手动将Jolokia的AgentServlet注册到Spring Boot的Servlet容器中:

import org.jolokia.http.AgentServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JolokiaConfig {

    @Bean
    public ServletRegistrationBean<AgentServlet> jolokiaServletRegistration() {
        ServletRegistrationBean<AgentServlet> registration = new ServletRegistrationBean<>(new AgentServlet());
        registration.addUrlMappings("/jolokia/*"); // 自定义端点访问路径
        registration.setName("JolokiaAgent");
        return registration;
    }
}

若你的应用是Reactive类型,需替换为JolokiaHttpHandler并注册到WebFlux中。

3. 配置访问权限与端点开放

基础访问配置

若搭配Spring Boot Actuator使用,需在配置文件中开启Jolokia端点:

# application.properties
management.endpoint.jolokia.enabled=true
management.endpoints.web.exposure.include=jolokia,health # 按需开放其他端点

Spring Security 拦截放行

如果应用启用了Spring Security,需允许Jolokia路径的访问:

Spring Boot 2.x(WebSecurityConfigurerAdapter)

import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/jolokia/**").permitAll()
                .anyRequest().authenticated();
    }
}

Spring Boot 3.x(SecurityFilterChain)

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(auth -> auth
                .requestMatchers("/jolokia/**").permitAll()
                .anyRequest().authenticated());
        return http.build();
    }
}

4. 版本兼容关键点

  • Spring Boot 3.x升级到了Jakarta EE API,旧版Jolokia(1.x)依赖javax.servlet,会导致类加载失败,必须使用Jolokia 2.0.0+版本。
  • Spring Boot 2.x可继续使用Jolokia 1.x版本,无需额外调整依赖API。

内容的提问来源于stack exchange,提问作者Aliabbas Attarwala

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 17:40:12