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

Spring Boot 2.5.5整合CXF 3.4.5后actuator端点404无法访问求助

解决方案步骤

1. 确认Actuator依赖正确引入

Maven pom.xml中要加入actuator starter依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Gradle配置对应加入:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

2. 修正application配置文件(application.yml/properties)

添加以下配置开启Actuator端点暴露,避免默认配置仅暴露health端点甚至完全不暴露:
yml格式:

management:
  endpoints:
    web:
      exposure:
        include: "*" # 按需调整要暴露的端点,比如仅暴露health可以写"health"
      base-path: /actuator # 保持默认路径,确认没有被修改为其他值
  endpoint:
    health:
      show-details: always # 可选,按需配置健康检查详情展示规则
# 确认没有配置management.server.port,否则Actuator会跑在指定的独立端口上
# 确认server.servlet.context-path没有配置,否则访问路径要加前缀:http://localhost:8082/{context-path}/actuator

properties格式:

management.endpoints.web.exposure.include=*
management.endpoints.web.base-path=/actuator
management.endpoint.health.show-details=always

3. 修正CXF Servlet配置,禁用自动注册避免冲突

如果你引入了cxf-spring-boot-starter,默认会自动注册CXFServlet,和你手动定义的ServletRegistrationBean冲突,先在配置文件添加配置关闭自动注册:

cxf:
  servlet:
    enabled: false

然后给你手动定义的CXF Servlet设置更高优先级,确保/service/*路径的请求优先交给CXF处理:

@Bean
public ServletRegistrationBean<CXFServlet> cxfServlet() {
    ServletRegistrationBean<CXFServlet> registration = new ServletRegistrationBean<>(new CXFServlet(), "/service/*");
    registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
    return registration;
}

4. 删除冗余的DispatcherServlet配置

你手动定义的DispatcherServlet和对应的RegistrationBean完全不需要,Spring Boot会自动配置,手动配置反而会覆盖默认规则导致路径映射异常,直接删除这两个Bean的定义即可。

所有配置完成后重启服务,访问http://localhost:8082/actuator即可看到所有已暴露的端点列表。

内容的提问来源于stack exchange,提问作者Kamil Święch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:54:03