0

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

0 Answers0