Jasper Reports with Gradle 6.7.1

I am trying to implement Jasper reports with Gradle, but while doing it I am getting “java.lang.ClassNotFoundException: net.sf.jasperreports.engine.data.JRBeanCollectionDataSource” Exception at Runtime.
I have tried almost all the possible ways mentioned on internet to resolve this but no luck.
I have tried to implement it with Maven and its working fine.

I am attaching all the code files with it

1. JasperReportsGradleApplication.java file

package com.jasperReports.Gradle;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;



@SpringBootApplication(scanBasePackages = "com.jasperReports")
public class JasperReportsGradleApplication extends SpringBootServletInitializer{

	public static void main(String[] args) {
		SpringApplication.run(JasperReportsGradleApplication.class, args);
	}

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(JasperReportsGradleApplication.class);
	}

}

2.EmployeeController.java File

package com.jasperReports.Gradle.controller;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.jasperReports.Gradle.model.Employee;

import net.sf.jasperreports.engine.JREmptyDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;
import net.sf.jasperreports.view.JasperViewer;

@Controller
@RequestMapping(value = "/api")
public class EmployeeController {

	@GetMapping(value = "/generateReport")
	//@RequestMapping(value = "/")
	public void generateReport()
	{
		try {
			
			System.out.println("in generateReport");

	        /* Output file location to create report in pdf form */
	       
	        String outputFile = "C:\\Users\\apurvab\\Documents\\JasperReport\\" + "JasperReportExample.pdf";

	        /* List to hold Items */
	        List<Employee> listItems = new ArrayList<Employee>();

	        /* Create Employee objects */
	        Employee emp1 = new Employee();
	        Employee emp2 = new Employee();
	        Employee emp3 = new Employee();
	        
	        /*first employee object*/
	        emp1.setId(101);
	        emp1.setFirstName("SAM");
	        emp1.setLastName("Smith");
	        emp1.setAddress("6th Avenue Dalton Road");
	        emp1.setSalary(10000.0);
	        
	        
	        /*second employee object*/
	        emp2.setId(101);
	        emp2.setFirstName("JOHN");
	        emp2.setLastName("Williams");
	        emp2.setAddress("4th Square Down Town");
	        emp2.setSalary(17000.0);
	        
	        /*third employee object*/
	        emp3.setId(101);
	        emp3.setFirstName("JACOB");
	        emp3.setLastName("Wilson");
	        emp3.setAddress("19th Zygon Square, Middle Town");
	        emp3.setSalary(22000.0);
	        
	        
	        /* Add Items to List */
	        listItems.add(emp1);
	        listItems.add(emp2);
	        listItems.add(emp3);

	        /* Convert List to JRBeanCollectionDataSource */
	        JRBeanCollectionDataSource itemsJRBean = new JRBeanCollectionDataSource(listItems);

	        /* Map to hold Jasper report Parameters */
	        Map<String, Object> parameters = new HashMap<String, Object>();
	        parameters.put("CollectionBeanParam", itemsJRBean);
	        
	        //read jrxml file and creating jasperdesign object
	       
	        InputStream input = new FileInputStream(new File("C:\\Users\\apurvab\\Documents\\JasperReport\\Blank_A4_1.jrxml"));
	                            
	        JasperDesign jasperDesign = JRXmlLoader.load(input);
	        
	        /*compiling jrxml with help of JasperReport class*/
	        JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

	        /* Using jasperReport object to generate PDF */
	        JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, new JREmptyDataSource());

	        /*call jasper engine to display report in jasperviewer window*/
	       // JasperViewer.viewReport(jasperPrint);
	        
	        
	        /* outputStream to create PDF */
	       // OutputStream outputStream = new FileOutputStream(new File(outputFile));
	        
	        
	        /* Write content to PDF file */
	        //JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream);
	        
	        final String filePath = "C:\\Users\\apurvab\\Documents\\JasperReport\\";

	        
	        JasperExportManager.exportReportToPdfFile(jasperPrint, filePath + "Employee_report.pdf");


	        System.out.println("File Generated");	

	        
			
			
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

	}
}

3.Employee.java File

package com.jasperReports.Gradle.model;
public class Employee
{
	private int id; //integer 
    private String firstName;
    private String lastName;    
    private String address;       
    private double salary;// floating point value
    
    public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
	
	
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}	
	
	public double getSalary() {
		return salary;
	}
	public void setSalary(double salary) {
		this.salary = salary;
	}
	 
	
}

4.Source of JRXML File

<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.12.0.final using JasperReports Library version 6.12.1-ac0eebdb29e4c0985457bab279a6db744d661530  -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4_1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="fcbeefa2-0a92-47ed-84d7-31897dc61074">
	<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
	<style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
		<box>
			<pen lineWidth="0.5" lineColor="#000000"/>
			<topPen lineWidth="0.5" lineColor="#000000"/>
			<leftPen lineWidth="0.5" lineColor="#000000"/>
			<bottomPen lineWidth="0.5" lineColor="#000000"/>
			<rightPen lineWidth="0.5" lineColor="#000000"/>
		</box>
	</style>
	<style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
		<box>
			<pen lineWidth="0.5" lineColor="#000000"/>
			<topPen lineWidth="0.5" lineColor="#000000"/>
			<leftPen lineWidth="0.5" lineColor="#000000"/>
			<bottomPen lineWidth="0.5" lineColor="#000000"/>
			<rightPen lineWidth="0.5" lineColor="#000000"/>
		</box>
	</style>
	<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
		<box>
			<pen lineWidth="0.5" lineColor="#000000"/>
			<topPen lineWidth="0.5" lineColor="#000000"/>
			<leftPen lineWidth="0.5" lineColor="#000000"/>
			<bottomPen lineWidth="0.5" lineColor="#000000"/>
			<rightPen lineWidth="0.5" lineColor="#000000"/>
		</box>
	</style>
	<subDataset name="MYCollectionDataset" uuid="01c3faf0-0a67-45ae-8ce1-93d1def8533d">
		<queryString>
			<![CDATA[]]>
		</queryString>
		<field name="id" class="java.lang.Integer"/>
		<field name="firstName" class="java.lang.String"/>
		<field name="lastName" class="java.lang.String"/>
		<field name="address" class="java.lang.String"/>
		<field name="salary" class="java.lang.Double"/>
	</subDataset>
	<parameter name="CollectionBeanParam" class="net.sf.jasperreports.engine.data.JRBeanCollectionDataSource"/>
	<queryString>
		<![CDATA[]]>
	</queryString>
	<background>
		<band splitType="Stretch"/>
	</background>
	<title>
		<band height="79" splitType="Stretch"/>
	</title>
	<pageHeader>
		<band height="35" splitType="Stretch"/>
	</pageHeader>
	<columnHeader>
		<band height="61" splitType="Stretch"/>
	</columnHeader>
	<detail>
		<band height="231" splitType="Stretch">
			<componentElement>
				<reportElement x="30" y="31" width="500" height="159" uuid="b159e05b-2bd9-414e-a0ea-134d4707d95e">
					<property name="com.jaspersoft.studio.layout" value="com.jaspersoft.studio.editor.layout.VerticalRowLayout"/>
					<property name="com.jaspersoft.studio.table.style.table_header" value="Table_TH"/>
					<property name="com.jaspersoft.studio.table.style.column_header" value="Table_CH"/>
					<property name="com.jaspersoft.studio.table.style.detail" value="Table_TD"/>
				</reportElement>
				<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
					<datasetRun subDataset="MYCollectionDataset" uuid="35d0bf00-1b00-4d81-ba6f-5ec31c530a60">
						<dataSourceExpression><![CDATA[$P{CollectionBeanParam}]]></dataSourceExpression>
					</datasetRun>
					<jr:column width="80" uuid="a404b280-35ba-4eaf-b792-8c02b5e29786">
						<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
						<jr:tableHeader style="Table_TH" height="30" rowSpan="1"/>
						<jr:tableFooter style="Table_TH" height="30" rowSpan="1"/>
						<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
							<staticText>
								<reportElement x="0" y="0" width="80" height="30" uuid="d2620986-7202-4096-be67-5511333e0a38"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<text><![CDATA[Emp ID]]></text>
							</staticText>
						</jr:columnHeader>
						<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
						<jr:detailCell style="Table_TD" height="30">
							<textField>
								<reportElement x="0" y="0" width="80" height="30" uuid="53bcc980-ebc6-41c8-9922-a215a0dbd7bf"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<textFieldExpression><![CDATA[$F{id}]]></textFieldExpression>
							</textField>
						</jr:detailCell>
					</jr:column>
					<jr:column width="80" uuid="b4ddb57e-1085-464b-ac15-c4b05f399f71">
						<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column2"/>
						<jr:tableHeader style="Table_TH" height="30" rowSpan="1"/>
						<jr:tableFooter style="Table_TH" height="30" rowSpan="1"/>
						<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
							<staticText>
								<reportElement x="0" y="0" width="80" height="30" uuid="1acd759b-573d-4a88-b76e-55d8d6c3c12f"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<text><![CDATA[First Name]]></text>
							</staticText>
						</jr:columnHeader>
						<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
						<jr:detailCell style="Table_TD" height="30">
							<textField>
								<reportElement x="0" y="0" width="80" height="30" uuid="ecc5ab97-7314-4af5-b90e-527240bf6952"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<textFieldExpression><![CDATA[$F{firstName}]]></textFieldExpression>
							</textField>
						</jr:detailCell>
					</jr:column>
					<jr:column width="80" uuid="ea7c84cb-0301-4ceb-8944-a8ec58515b13">
						<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column3"/>
						<jr:tableHeader style="Table_TH" height="30" rowSpan="1"/>
						<jr:tableFooter style="Table_TH" height="30" rowSpan="1"/>
						<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
							<staticText>
								<reportElement x="0" y="0" width="80" height="30" uuid="4588930b-05e9-4658-ade1-4c073066ff4e"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<text><![CDATA[Last Name]]></text>
							</staticText>
						</jr:columnHeader>
						<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
						<jr:detailCell style="Table_TD" height="30">
							<textField>
								<reportElement x="0" y="0" width="80" height="30" uuid="d561660d-3454-415f-b63e-b861cf0ad885"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<textFieldExpression><![CDATA[$F{lastName}]]></textFieldExpression>
							</textField>
						</jr:detailCell>
					</jr:column>
					<jr:column width="80" uuid="66cfdd5b-f271-466f-b545-25ecc0f30aa0">
						<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column4"/>
						<jr:tableHeader style="Table_TH" height="30" rowSpan="1"/>
						<jr:tableFooter style="Table_TH" height="30" rowSpan="1"/>
						<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
							<staticText>
								<reportElement x="0" y="0" width="80" height="30" uuid="64fa662c-3b84-4af7-8883-ab4e6b64a353"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<text><![CDATA[Address]]></text>
							</staticText>
						</jr:columnHeader>
						<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
						<jr:detailCell style="Table_TD" height="30">
							<textField>
								<reportElement x="0" y="0" width="80" height="30" uuid="43ae2917-deec-4881-8ac2-312e5780ddd6"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<textFieldExpression><![CDATA[$F{address}]]></textFieldExpression>
							</textField>
						</jr:detailCell>
					</jr:column>
					<jr:column width="80" uuid="48e05c74-966d-46e4-8418-99862a261fba">
						<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column5"/>
						<jr:tableHeader style="Table_TH" height="30" rowSpan="1"/>
						<jr:tableFooter style="Table_TH" height="30" rowSpan="1"/>
						<jr:columnHeader style="Table_CH" height="30" rowSpan="1">
							<staticText>
								<reportElement x="0" y="0" width="80" height="30" uuid="6c42e1d0-4786-45e4-9b60-5fef846753d1"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<text><![CDATA[Salary]]></text>
							</staticText>
						</jr:columnHeader>
						<jr:columnFooter style="Table_CH" height="30" rowSpan="1"/>
						<jr:detailCell style="Table_TD" height="30">
							<textField>
								<reportElement x="0" y="0" width="80" height="30" uuid="231f1916-7e59-4155-81a2-03e53b1f5579"/>
								<textElement textAlignment="Center" verticalAlignment="Middle"/>
								<textFieldExpression><![CDATA[$F{salary}]]></textFieldExpression>
							</textField>
						</jr:detailCell>
					</jr:column>
				</jr:table>
			</componentElement>
		</band>
	</detail>
	<columnFooter>
		<band height="45" splitType="Stretch"/>
	</columnFooter>
	<pageFooter>
		<band height="54" splitType="Stretch"/>
	</pageFooter>
	<summary>
		<band height="42" splitType="Stretch"/>
	</summary>
</jasperReport>

5.build.gradle File

plugins {
	id 'org.springframework.boot' version '2.3.8.RELEASE'
	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
	id 'java'
}

group = 'com.jasperReports.Gradle'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'net.sf.jasperreports:jasperreports:6.16.0'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	testImplementation('org.springframework.boot:spring-boot-starter-test') {
		exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
	}
}

test {
	useJUnitPlatform()
}

6. Exception that I am getting

in generateReport
2021-02-10 10:34:12.016 ERROR 29936 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/data/JRBeanCollectionDataSource] with root cause

java.lang.ClassNotFoundException: net.sf.jasperreports.engine.data.JRBeanCollectionDataSource
	at java.net.URLClassLoader.findClass(Unknown Source) ~[na:1.8.0_181]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_181]
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) ~[na:1.8.0_181]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_181]
	at java.lang.Class.forName0(Native Method) ~[na:1.8.0_181]
	at java.lang.Class.forName(Unknown Source) ~[na:1.8.0_181]
	at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:144) ~[spring-boot-devtools-2.3.8.RELEASE.jar:2.3.8.RELEASE]
	at java.lang.ClassLoader.loadClass(Unknown Source) ~[na:1.8.0_181]
	at com.jasperReports.Gradle.controller.EmployeeController.generateReport(EmployeeController.java:87) ~[main/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_181]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_181]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_181]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_181]
	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) ~[tomcat-embed-core-9.0.41.jar:4.0.FR]
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[tomcat-embed-core-9.0.41.jar:4.0.FR]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE]
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) ~[tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.8.0_181]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.8.0_181]
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.41.jar:9.0.41]
	at java.lang.Thread.run(Unknown Source) [na:1.8.0_181]