I'm trying to upgrade the version from springVersion = '4.3.27.RELEASE' springBootVersion = '1.5.22.RELEASE'to
springVersion = '5.3.25' springBootVersion ='2.3.5.RELEASE'
The issue i face is in ActuatorConfiguation.java where No beans of 'WebEndpointsSupplier' type found.
ActuatorConfiguration.java:
@Configuration
@Import({
EndpointAutoConfiguration.class,
HealthIndicatorAutoConfiguration.class,
InfoEndpointAutoConfiguration.class,
HealthEndpointAutoConfiguration.class,
WebEndpointAutoConfiguration.class,
ServletManagementContextAutoConfiguration.class,
ManagementContextAutoConfiguration.class,
})
@EnableConfigurationProperties(CorsEndpointProperties.class)
class ActuatorConfiguration {
@Bean //taken from WebMvcEndpointManagementContextConfiguration.class
public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier,
ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier,
EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties,
WebEndpointProperties webEndpointProperties) {
List<ExposableEndpoint<?>> allEndpoints = new ArrayList<>();
Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
allEndpoints.addAll(webEndpoints);
allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
EndpointMapping endpointMapping = new EndpointMapping(webEndpointProperties.getBasePath());
return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes,
corsProperties.toCorsConfiguration(),
new EndpointLinksResolver(allEndpoints, webEndpointProperties.getBasePath()),true);
}
@Bean
DispatcherServletPath dispatcherServletPath() {
return () -> "/";
}
}
build.gradle:
plugins {
id 'java-library'
}
bootstrap {
java()
javaLibrary()
}
group = 'be.cipal.common'
description = "Spring Actuator support for CipalCommon"
dependencies {
api "org.springframework.boot:spring-boot-actuator:${springBootVersion}"
api "org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}"
api "org.springframework.boot:spring-boot-starter-aop:${springBootVersion}"
api "org.springframework.boot:spring-boot-actuator-autoconfigure:${springBootVersion}"
api "org.springframework:spring-web:${springVersion}"
api "org.springframework:spring-webmvc:${springVersion}"
api ('io.prometheus:simpleclient_spring_boot:0.8.1') {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
compile "org.springframework.boot:spring-boot-starter-actuator:${springBootVersion}"
compile "org.springframework.boot:spring-boot-starter-aop:${springBootVersion}"
implementation 'io.prometheus:simpleclient_hotspot:0.8.1'
implementation 'javax.inject:javax.inject:1'
testImplementation 'junit:junit:4.12'
testImplementation 'org.assertj:assertj-core:3.13.2'
testImplementation 'org.mockito:mockito-core:2.28.2'
}
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<description>Application code for this application, this code is used to authenticate users against porta</description>
<param-name>appCode</param-name>
<param-value>METIS</param-value>
</context-param>
<filter>
<filter-name>LoadingFilter</filter-name>
<filter-class>be.cipalschaubroeck.common.modern.ui.startup.StartupFilter</filter-class>
</filter>
<filter>
<filter-name>UncaughtExceptionFilter</filter-name>
<filter-class>be.cipal.filter.UncaughtExceptionFilter</filter-class>
</filter>
<filter>
<filter-name>SetupFilter</filter-name>
<filter-class>be.cipal.setup.SetupFilter</filter-class>
</filter>
<filter>
<description>Filter that handles the security. This filter is responsible for the user Authentication</description>
<filter-name>SsoAuthenticationFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>ssoAuthenticationFilter</param-value>
</init-param>
</filter>
<filter>
<description>Filter that synchronizes the appModeCookie</description>
<display-name>AppModeFilter</display-name>
<filter-name>AppModeFilter</filter-name>
<filter-class>be.cipal.web.struts.tiles.AppModeFilter</filter-class>
</filter>
<filter>
<filter-name>NoCacheFilter</filter-name>
<filter-class>be.cipal.web.filter.NoCacheFilter</filter-class>
</filter>
<filter>
<filter-name>UTF8Filter</filter-name>
<filter-class>be.cipal.filter.UTF8Filter</filter-class>
</filter>
<filter>
<filter-name>RestSecurityFilter</filter-name>
<filter-class>be.cipal.metis.web.filter.MetisRestSecurityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UncaughtExceptionFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>UTF8Filter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AppModeFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>AppModeFilter</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>SetupFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>SetupFilter</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>SsoAuthenticationFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>NoCacheFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>NoCacheFilter</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
<filter-mapping>
<filter-name>RestSecurityFilter</filter-name>
<url-pattern>/rs/secured/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>rest-api</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/rest-api-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml, struts-anafora-config.xml, struts-config-porta-sso.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>chainConfig</param-name>
<param-value>org/apache/struts/tiles/chain-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet>
<servlet-name>ResourceServlet</servlet-name>
<servlet-class>be.cipal.web.servlet.ResourceServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ManualServlet</servlet-name>
<servlet-class>be.cipal.manual.ManualServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>actuator</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/actuator-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ResourceServlet</servlet-name>
<url-pattern>/static/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ManualServlet</servlet-name>
<url-pattern>/help/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>rest-api</servlet-name>
<url-pattern>/rs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>actuator</servlet-name>
<url-pattern>/actuator/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>be.cipal.charta.openoffice.listener.OfficeServiceServletContextListener</listener-class>
</listener>
<listener>
<listener-class>be.cipal.web.util.SessionAttributeListener</listener-class>
</listener>
</web-app>
actuator-config.xml
<bean name="actuatorConfiguration" class="be.cipalschaubroeck.common.actuator.ActuatorConfiguration" />
</beans>
I'm new to springboot and spring. Went through various resources but couldn't find the solution