我使用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是accessable通过localhost: 8082/服务/servicename-service吗?wsdl
然而,localhost:8082/actuator返回Whitelabel Error Page (404 Not Found)。我从这个网站和其他网站上尝试了很多解决方案,但都不起作用。
我添加了以下代码,但没有帮助
@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-start -actuator mvn clean install
- 重建项目
- 再次添加spring-boot-start -actuator到dependencies mvn clean install
- 启动项目,看到驱动器和wsdl都工作
我甚至删除了cxfServlet并设置了cxf。应用中的路径=/service。与当前功能保持一致