Spring Boot 2.5.5、CXF 3.4.5、执行器 - 缺少执行器端点

Spring Boot 2.5.5, CXF 3.4.5, Actuator - Missing actuator endpoints

我正在使用 Spring Boot 2.5.5 和 CXF WS 3.4.5 创建一个微服务,它将在云端。要求之一是具有执行器。监控服务会定期检查微服务是否可用。

我有以下代码来发布端点

         @Bean
         public EndpointImpl endpoint() {
              EndpointImpl endpoint = new EndpointImpl(bus, serviceName);
              endpoint.getInInterceptors().add(wSS4JInInterceptor());
              endpoint.getInInterceptors().add(loggingInInterceptor);
              endpoint.getOutInterceptors().add(loggingOutInterceptor);
              endpoint.setBindingUri(SOAP12HTTP_BINDING);
              endpoint.publish("/servicename-service");
              return endpoint;
         }

WSDL 可通过 localhost:8082/service/servicename-service?wsdl

但是,localhost:8082/actuator returns Whitelabel 错误页面(404 未找到)。我从这个网站和其他网站尝试了很多解决方案,但 none 有效。

我添加了以下代码,但没有帮助

    @Bean
    public ServletRegistrationBean cxfServlet() {
        return new ServletRegistrationBean(new CXFServlet(), "/service/*");
    }

我也尝试过重写 dispatcherServlet 但它也没有帮助。

    @Bean
    public DispatcherServlet dispatcherServlet() {
        return new DispatcherServlet();
    }

    @Bean
    public ServletRegistrationBean dispatcherServletRegistrationBean() {
        ServletRegistrationBean dispatcherServlet = new ServletRegistrationBean(dispatcherServlet(), "/*");
        dispatcherServlet.setOrder(2);
        dispatcherServlet.setName(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME);
        return dispatcherServlet;
    }

我不知道在这个过程中到底是什么失败了,但它现在可以正常工作了。 这些步骤有所帮助:

  1. 从依赖项中删除 spring-boot-starter-actuator
  2. mvn 全新安装
  3. 重建项目
  4. 再次添加 spring-boot-starter-actuator 到 dependcies
  5. mvn 全新安装
  6. 启动项目并查看执行器和 wsdl 是否正常工作

我什至删除了 cxfServlet 并在 application.yml 中设置 cxf.path=/service 以与当前功能保持一致。