Microservices Java Web Application RunTime Issue after upgrading to Java17

75 Views Asked by At

These are my Error Tomcat Logs for my Java Spring Framework Application .

31-Jan-2024 23:11:52.339 INFO [main] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath
31-Jan-2024 23:11:54.619 INFO [main] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
31-Jan-2024 23:11:57.630 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restEndpointsServer': Invocation of init method failed; nested exception is org.apache.cxf.service.factory.ServiceConstructionException
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1589)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:554)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:759)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4494)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4946)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:662)
        at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:689)
        at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1888)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
        at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:582)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:472)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1617)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:318)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
        at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
        at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:893)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:795)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1328)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1318)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(Unknown Source)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:866)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:249)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:428)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:922)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
    Caused by: org.apache.cxf.service.factory.ServiceConstructionException
        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:220)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1719)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1656)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1585)
        ... 53 more
    Caused by: org.apache.cxf.service.factory.ServiceConstructionException: No resource classes found
        at org.apache.cxf.jaxrs.AbstractJAXRSFactoryBean.checkResources(AbstractJAXRSFactoryBean.java:318)
        at org.apache.cxf.jaxrs.JAXRSServerFactoryBean.create(JAXRSServerFactoryBean.java:156)
        ... 60 more
31-Jan-2024 23:11:57.760 INFO [main] org.apache.catalina.core.ApplicationContext.log Closing Spring root WebApplicationContext
31-Jan-2024 23:11:58.397 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: contextInitialized()
31-Jan-2024 23:11:58.397 INFO [main] org.apache.catalina.core.ApplicationContext.log SessionListener: contextInitialized()
31-Jan-2024 23:11:58.399 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: attributeAdded('StockTicker', 'async.Stockticker@7d957c96')
31-Jan-2024 23:11:58.644 INFO [main] org.apache.catalina.core.ApplicationContext.log SessionListener: contextDestroyed()
31-Jan-2024 23:11:58.644 INFO [main] org.apache.catalina.core.ApplicationContext.log ContextListener: contextDestroyed()
  1. Java- 17 eclipse adoptium open jdk

  2. Tomcat version- 9.0.78

  3. Spring Version - 5.3.13

  4. Spring Security Version- 5.3.13.RELEASE

  5. cxf.version-3.5.0

    I have excluded al the duplicate dependencies those come with Jakarta changes in CXF. I have tried changing dependency versions and spring versions , I'm able to build with Maven, But When I deploy the generated war file with Tomcat Application doesn't start . Below is my POM

     <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
         <modelVersion>4.0.0</modelVersion>
         <groupId>com.xxxxx.xxxxx</groupId>
         <artifactId>xxxxxxxxx</artifactId>
         <version>1.0-SNAPSHOT</version>
         <name>xxxxx</name>
         <packaging>pom</packaging>
         <dependencies>
             <dependency>
                 <groupId>org.testng</groupId>
                 <artifactId>testng</artifactId>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.unitils</groupId>
                 <artifactId>unitils-core</artifactId>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>ch.qos.logback</groupId>
                 <artifactId>logback-classic</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.codehaus.janino</groupId>
                 <artifactId>janino</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>slf4j-api</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>jcl-over-slf4j</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>jul-to-slf4j</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.slf4j</groupId>
                 <artifactId>log4j-over-slf4j</artifactId>
             </dependency>
             <dependency>
                 <groupId>javax.inject</groupId>
                 <artifactId>javax.inject</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.aspectj</groupId>
                 <artifactId>aspectjrt</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.springframework</groupId>
                 <artifactId>spring-context</artifactId>
             </dependency>
             <dependency>
                 <groupId>org.mockito</groupId>
                 <artifactId>mockito-core</artifactId>
             </dependency>
         </dependencies>
         <properties>
             <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
             <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
             <nexus.url>https://xxx.xxx.ca/nexus/repository/maven-public</nexus.url>
             <spring.version>5.3.13</spring.version>
             <spring-security.version>5.3.13.RELEASE</spring-security.version>
             <cxf.version>3.5.0</cxf.version>
             <aspectj.version>1.8.10</aspectj.version>
             <test.type>integration</test.type>
             <thymeleaf.version>3.0.0.RELEASE</thymeleaf.version>
             <sso.shared>1910.0.8</sso.shared>
         </properties>
         <repositories>
             <repository>
                 <id>nexus</id>
                 <url>${nexus.url}</url>
                 <snapshots>
                     <enabled>true</enabled>
                 </snapshots>
             </repository>
         </repositories>
         <pluginRepositories>
             <pluginRepository>
                 <id>nexus</id>
                 <url>${nexus.url}</url>
                 <snapshots>
                     <enabled>false</enabled>
                 </snapshots>
             </pluginRepository>
         </pluginRepositories>
         <build>
             <pluginManagement>
                 <plugins>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-compiler-plugin</artifactId>
                         <version>3.8.1</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-dependency-plugin</artifactId>
                         <version>3.0.0</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-resources-plugin</artifactId>
                         <version>3.0.2</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-javadoc-plugin</artifactId>
                         <version>2.10.4</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-surefire-plugin</artifactId>
                         <version>2.19.1</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-war-plugin</artifactId>
                         <version>3.3.2</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-jar-plugin</artifactId>
                         <version>3.0.2</version>
                     </plugin>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-antrun-plugin</artifactId>
                         <version>1.8</version>
                     </plugin>
                     <plugin>
                         <groupId>org.jacoco</groupId>
                         <artifactId>jacoco-maven-plugin</artifactId>
                         <version>0.7.9</version>
                     </plugin>
                 </plugins>
             </pluginManagement>
             <plugins>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
                     <configuration>
                         <release>17</release>
                         <!--<compilerArgument>-Xlint:deprecation</compilerArgument>-->
                     </configuration>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
                     <configuration>
                         <suiteXmlFiles>
                             <suiteXmlFile>../testng-${test.type}.xml</suiteXmlFile>
                         </suiteXmlFiles>
                         <argLine>
                                 -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                         </argLine>
                     </configuration>
                     <dependencies>
                         <dependency>
                             <groupId>org.aspectj</groupId>
                             <artifactId>aspectjweaver</artifactId>
                             <version>${aspectj.version}</version>
                         </dependency>
                     </dependencies>
                 </plugin>
             </plugins>
         </build>
         <reporting>
             <plugins>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
                     <version>2.19.1</version>
                 </plugin>
             </plugins>
         </reporting>
         <dependencyManagement>
             <dependencies>
                 <!-- Internal dependencies -->
                 <dependency>
                     <groupId>javax.annotation</groupId>
                     <artifactId>javax.annotation-api</artifactId>
                     <version>1.3.2</version>
                 </dependency>
                 <dependency>
                         Internal Dependencies
                     <!-- External dependencies -->
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-core</artifactId>
                         <version>${spring.version}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>commons-logging</groupId>
                                 <artifactId>commons-logging</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-context</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-beans</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-expression</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-test</artifactId>
                         <version>${spring.version}</version>
                         <scope>test</scope>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-web</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-webmvc</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-tx</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework</groupId>
                         <artifactId>spring-jdbc</artifactId>
                         <version>${spring.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework.security</groupId>
                         <artifactId>spring-security-crypto</artifactId>
                         <version>${spring-security.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework.security</groupId>
                         <artifactId>spring-security-core</artifactId>
                         <version>${spring-security.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework.security</groupId>
                         <artifactId>spring-security-web</artifactId>
                         <version>${spring-security.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.springframework.security</groupId>
                         <artifactId>spring-security-config</artifactId>
                         <version>${spring-security.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.testng</groupId>
                         <artifactId>testng</artifactId>
                         <version>6.10</version>
                         <scope>test</scope>
                     </dependency>
                     <dependency>
                         <groupId>ch.qos.logback</groupId>
                         <artifactId>logback-classic</artifactId>
                         <version>1.1.8</version>
                     </dependency>
                     <dependency>
                         <groupId>org.codehaus.janino</groupId>
                         <artifactId>janino</artifactId>
                         <version>3.0.6</version>
                     </dependency>
                     <dependency>
                         <groupId>org.slf4j</groupId>
                         <artifactId>slf4j-api</artifactId>
                         <version>1.7.22</version>
                     </dependency>
                     <dependency>
                         <groupId>org.slf4j</groupId>
                         <artifactId>jcl-over-slf4j</artifactId>
                         <version>1.7.22</version>
                     </dependency>
                     <dependency>
                         <groupId>org.slf4j</groupId>
                         <artifactId>jul-to-slf4j</artifactId>
                         <version>1.7.22</version>
                     </dependency>
                     <dependency>
                         <groupId>org.slf4j</groupId>
                         <artifactId>log4j-over-slf4j</artifactId>
                         <version>1.7.22</version>
                     </dependency>
                     <dependency>
                         <groupId>javax.servlet</groupId>
                         <artifactId>javax.servlet-api</artifactId>
                         <version>3.1.0</version>
                         <scope>provided</scope>
                     </dependency>
                     <dependency>
                         <groupId>com.google.guava</groupId>
                         <artifactId>guava</artifactId>
                         <version>20.0</version>
                     </dependency>
                     <dependency>
                         <groupId>javax.inject</groupId>
                         <artifactId>javax.inject</artifactId>
                         <version>1</version>
                     </dependency>
                     <dependency>
                         <groupId>javax.validation</groupId>
                         <artifactId>validation-api</artifactId>
                         <version>1.1.0.Final</version>
                     </dependency>
                     <dependency>
                         <groupId>org.aspectj</groupId>
                         <artifactId>aspectjrt</artifactId>
                         <version>${aspectj.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>com.google.code.gson</groupId>
                         <artifactId>gson</artifactId>
                         <version>2.8.0</version>
                     </dependency>
                     <dependency>
                         <groupId>org.skyscreamer</groupId>
                         <artifactId>jsonassert</artifactId>
                         <version>1.4.0</version>
                         <scope>test</scope>
                     </dependency>
                     <dependency>
                         <groupId>com.networknt</groupId>
                         <artifactId>json-schema-validator</artifactId>
                         <version>0.1.4</version>
                     </dependency>
                     <!-- remove the following dependencies if you don't support XML in the REST calls -->
                     <dependency>
                         <groupId>com.thoughtworks.xstream</groupId>
                         <artifactId>xstream</artifactId>
                         <version>1.4.9</version>
                     </dependency>
                     <dependency>
                         <groupId>xmlunit</groupId>
                         <artifactId>xmlunit</artifactId>
                         <version>1.6</version>
                         <scope>test</scope>
                     </dependency>
                     <dependency>
                         <groupId>dom4j</groupId>
                         <artifactId>dom4j</artifactId>
                         <version>1.6.1</version>
                         <scope>test</scope>
                     </dependency>
                     <!-- end of block to be removed if you don't support XML in the REST calls -->
                     <dependency>
                         <groupId>org.unitils</groupId>
                         <artifactId>unitils-core</artifactId>
                         <version>3.4.3</version>
                         <scope>test</scope>
                         <exclusions>
                             <exclusion>
                                 <groupId>commons-logging</groupId>
                                 <artifactId>commons-logging</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>com.xxx.innocache</groupId>
                         <artifactId>innocache</artifactId>
                         <version>1404.0.5</version>
                     </dependency>
                     <dependency>
                         <groupId>javax.ws.rs</groupId>
                         <artifactId>javax.ws.rs-api</artifactId>
                         <version>2.0.1</version>
                     </dependency>
                     <!-- remove cxf-rt-frontend-jaxws if you don't make SOAP calls to other services -->
                     <dependency>
                         <groupId>org.apache.cxf</groupId>
                         <artifactId>cxf-rt-frontend-jaxws</artifactId>
                         <version>${cxf.version}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>javax.annotation</groupId>
                                 <artifactId>javax.annotation-api</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>org.apache.cxf</groupId>
                         <artifactId>cxf-rt-frontend-jaxrs</artifactId>
                         <version>${cxf.version}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>javax.annotation</groupId>
                                 <artifactId>javax.annotation-api</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>org.apache.cxf</groupId>
                         <artifactId>cxf-rt-rs-client</artifactId>
                         <version>${cxf.version}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>javax.annotation</groupId>
                                 <artifactId>javax.annotation-api</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>org.apache.cxf</groupId>
                         <artifactId>cxf-rt-transports-http</artifactId>
                         <version>${cxf.version}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>javax.annotation</groupId>
                                 <artifactId>javax.annotation-api</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>org.apache.cxf</groupId>
                         <artifactId>cxf-rt-ws-security</artifactId>
                         <version>${cxf.version}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>org.slf4j</groupId>
                                 <artifactId>slf4j-api</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <dependency>
                         <groupId>org.mockito</groupId>
                         <artifactId>mockito-core</artifactId>
                         <version>2.5.5</version>
                         <scope>test</scope>
                     </dependency>
                     <dependency>
                         <groupId>org.hsqldb</groupId>
                         <artifactId>hsqldb</artifactId>
                         <version>2.3.4</version>
                     </dependency>
                     <dependency>
                         <groupId>com.oracle</groupId>
                         <artifactId>ojdbc7</artifactId>
                         <version>12.1.0.2</version>
                         <scope>provided</scope>
                     </dependency>
                     <dependency>
                         <groupId>net.logstash.logback</groupId>
                         <artifactId>logstash-logback-encoder</artifactId>
                         <version>4.8</version>
                     </dependency>
                     <dependency>
                         <groupId>commons-io</groupId>
                         <artifactId>commons-io</artifactId>
                         <version>2.5</version>
                     </dependency>
                     <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
                     <dependency>
                         <groupId>org.apache.httpcomponents</groupId>
                         <artifactId>httpclient</artifactId>
                         <version>4.5.5</version>
                     </dependency>
                     <!-- Thymeleaf library -->
                     <dependency>
                         <groupId>org.thymeleaf</groupId>
                         <artifactId>thymeleaf</artifactId>
                         <version>${thymeleaf.version}</version>
                     </dependency>
                     <dependency>
                         <groupId>org.thymeleaf</groupId>
                         <artifactId>thymeleaf-spring4</artifactId>
                         <version>${thymeleaf.version}</version>
                     </dependency>
                     <!-- SSO for My CreditCards app -->
                     <dependency>
                         <groupId>com.xxx.security.common</groupId>
                         <artifactId>spring-security-asserter</artifactId>
                         <version>${sso.shared}</version>
                         <exclusions>
                             <exclusion>
                                 <groupId>org.slf4j</groupId>
                                 <artifactId>slf4j-api</artifactId>
                             </exclusion>
                             <exclusion>
                                 <groupId>org.slf4j</groupId>
                                 <artifactId>slf4j-simple</artifactId>
                             </exclusion>
                         </exclusions>
                     </dependency>
                     <!--
                     kass - remove this eventually
                     -->
                     <dependency>
                         <groupId>com.xxx.security.common</groupId>
                         <artifactId>xxx-common-security-env</artifactId>
                         <version>${sso.shared}</version>
                     </dependency>
                 </dependencies>
             </dependencyManagement>
             <profiles>
                 <profile>
                     <!-- calculate coverage metrics per test with SonarQube and JaCoCo -->
                     <id>coverage-per-test</id>
                     <properties>
                     </properties>
                     <build>
                         <plugins>
                             <plugin>
                                 <groupId>org.jacoco</groupId>
                                 <artifactId>jacoco-maven-plugin</artifactId>
                                 <executions>
                                     <execution>
                                         <id>pre-unit-test</id>
                                         <goals>
                                             <goal>prepare-agent</goal>
                                         </goals>
                                     </execution>
                                     <execution>
                                         <id>post-unit-test</id>
                                         <phase>test</phase>
                                         <goals>
                                             <goal>report</goal>
                                         </goals>
                                     </execution>
                                     <execution>
                                         <id>report-aggregate</id>
                                         <phase>verify</phase>
                                         <goals>
                                             <goal>report-aggregate</goal>
                                         </goals>
                                     </execution>
                                 </executions>
                             </plugin>
                             <plugin>
                                 <groupId>org.apache.maven.plugins</groupId>
                                 <artifactId>maven-surefire-plugin</artifactId>
                                 <configuration>
                                     <!-- same configuration as in the regular test execution goal -->
                                     <!-- plus argLine parameter configured by JaCoCo prepare-agent -->
                                     <argLine>${argLine}                         -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                                     </argLine>
                                     <properties>
                                         <property>
                                             <name>listener</name>
                                             <value>org.sonar.java.jacoco.TestNGListener</value>
                                         </property>
                                     </properties>
                                 </configuration>
                             </plugin>
                         </plugins>
                     </build>
                     <dependencies>
                         <dependency>
                             <groupId>org.codehaus.sonar-plugins.java</groupId>
                             <artifactId>sonar-jacoco-listeners</artifactId>
                             <version>2.3</version>
                             <scope>test</scope> ```
    
    
0

There are 0 best solutions below