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;
}
我不知道在这个过程中到底是什么失败了,但它现在可以正常工作了。
这些步骤有所帮助:
- 从依赖项中删除 spring-boot-starter-actuator
- mvn 全新安装
- 重建项目
- 再次添加 spring-boot-starter-actuator 到 dependcies
- mvn 全新安装
- 启动项目并查看执行器和 wsdl 是否正常工作
我什至删除了 cxfServlet 并在 application.yml 中设置 cxf.path=/service 以与当前功能保持一致。
我正在使用 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;
}
我不知道在这个过程中到底是什么失败了,但它现在可以正常工作了。 这些步骤有所帮助:
- 从依赖项中删除 spring-boot-starter-actuator
- mvn 全新安装
- 重建项目
- 再次添加 spring-boot-starter-actuator 到 dependcies
- mvn 全新安装
- 启动项目并查看执行器和 wsdl 是否正常工作
我什至删除了 cxfServlet 并在 application.yml 中设置 cxf.path=/service 以与当前功能保持一致。