Category Archives: JAVA

Error:java: OutOfMemoryError: insufficient memory [How to Solve]

Troubleshooting: error: Java: outofmemoryerror: insufficient memory

1.idea

2. Desktop – my computer – the arrow in the upper left corner to the desktop – find the user folder – find xxx.vmoptions – config – change the size 3, restart the idea

Note:
you can’t find it on the Internet successfully. Record it.

JUnit test classes error: java.lang.IllegalStateException: Failed to load ApplicationContext

Problem description

When running JUnit test class, the following error message is reported:


java.lang.IllegalStateException: Failed to load ApplicationContext

	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132)
	at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:123)
	at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
	at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
	at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
	at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221)
	at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [org/jeecg/config/WebSocketConfig.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1794)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
	at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
	at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
	... 25 more
Caused by: java.lang.IllegalStateException: javax.websocket.server.ServerContainer not available
	at org.springframework.util.Assert.state(Assert.java:76)
	at org.springframework.web.socket.server.standard.ServerEndpointExporter.afterPropertiesSet(ServerEndpointExporter.java:107)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1853)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790)
	... 41 more

Error reporting reason

Websocket needs to be started by relying on containers such as Tomcat

Solution:

Add “webenvironment = springboottest. Webenvironment. Random_port” after springboottest, which means to create a web application context.

For a complete example, refer to the following code:

package org.jeecg;

import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.info.cache.DataCache;
import org.jeecg.modules.info.service.IWrSeasonBService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@Slf4j
public class DataCacheTest {

    @Autowired
    DataCache dataCahche;

    @Autowired
    IWrSeasonBService iWrSeasonBService;


    @Test
    public void irrSeasonTest() {
        log.info("========================");
        log.info("irrigation season cache test");
        log.info("irrigation season name:" + "spring irrigation");
        String str = dataCahche.getStartEndDateBySeasonNm("spring irrigation");
        // assertEquals("2021-03-01,2021-04-30", str);
        String[] arr = str.split(",");
        if (arr != null && !arr.equals("null")) {
            log.info("Start date, end date:" + arr[0] + "," + arr[1]);
        } else {
            log.info("Record cache does not exist");
        }
        log.info("========================");
    }

}

[Solved] org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class


  .   ____          _            __ _ _
 /\\/___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, |////
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.6.RELEASE)

2021-10-20 18:20:57.801  INFO 13176 --- [           main] cn.com.topsec.hgdsmp.web.WebApplication  : Starting WebApplication on DESKTOP-CXH with PID 13176 (F:\TopSecWork\06.dsmp\web\target\classes started by lenovo in F:\TopSecWork\06.dsmp\web)
2021-10-20 18:20:57.803  INFO 13176 --- [           main] cn.com.topsec.hgdsmp.web.WebApplication  : No active profile set, falling back to default profiles: default
2021-10-20 18:20:58.465  WARN 13176 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [cn.com.topsec.hgdsmp.web.WebApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/jeecgframework/minidao/aspect/EmptyInterceptor.class] cannot be opened because it does not exist
2021-10-20 18:20:58.469  INFO 13176 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-10-20 18:20:58.481 ERROR 13176 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [cn.com.topsec.hgdsmp.web.WebApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/jeecgframework/minidao/aspect/EmptyInterceptor.class] cannot be opened because it does not exist
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:181) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:315) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:232) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:705) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:531) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:742) [spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389) [spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:311) [spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1213) [spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1202) [spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at cn.com.topsec.hgdsmp.web.WebApplication.main(WebApplication.java:30) [classes/:na]
Caused by: java.io.FileNotFoundException: class path resource [org/jeecgframework/minidao/aspect/EmptyInterceptor.class] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:51) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73) ~[spring-boot-2.1.6.RELEASE.jar:2.1.6.RELEASE]
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81) ~[spring-core-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:682) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getInterfaces(ConfigurationClassParser.java:1008) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.processInterfaces(ConfigurationClassParser.java:375) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:323) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:242) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:191) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:295) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:242) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:167) ~[spring-context-5.1.8.RELEASE.jar:5.1.8.RELEASE]
	... 13 common frames omitted

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [cn.com.topsec.hgdsmp.web.WebApplication]; nested exception is java.io.FileNotFoundException: class path resource [org/jeecgframework/minidao/aspect/EmptyInterceptor.class] cannot be opened because it does not exist
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:181)
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:315)
	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:232)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275)
	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95)
	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:705)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:531)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:742)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:389)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:311)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1213)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1202)
	at cn.com.topsec.hgdsmp.web.WebApplication.main(WebApplication.java:30)
Caused by: java.io.FileNotFoundException: class path resource [org/jeecgframework/minidao/aspect/EmptyInterceptor.class] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:51)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86)
	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73)
	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81)
	at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:682)
	at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getInterfaces(ConfigurationClassParser.java:1008)
	at org.springframework.context.annotation.ConfigurationClassParser.processInterfaces(ConfigurationClassParser.java:375)
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:323)
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:242)
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:191)
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:295)
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:242)
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199)
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:167)
	... 13 more

Process finished with exit code 0

Solution: remove <–< scope> system Method, using Maven warehouse

!-- JimuReport import start -->
        <dependency>
            <groupId>org.jeecgframework.jimureport</groupId>
            <artifactId>jimureport-spring-boot-starter</artifactId>
            <version>1.4.0-beta</version>
            <!--<scope>system</scope>
            <systemPath>${project.basedir}/lib/jimureport-spring-boot-starter-1.4.0-beta.jar</systemPath>-->
        </dependency>

How to Solve Swagger error: typeerror: failed to fetch

Scene description

A project was recently deployed. Because it is compatible with IE8, the front and back ends need to be deployed to a site. The nginx configuration is as follows:

server {
    listen       80;
    server_name www.aaa.ink;
	client_max_body_size  1000M;
	client_body_timeout 20s;
	client_header_timeout 10s;
	send_timeout 30s;
	ssl_protocols TLSv1.2;
    charset utf-8;
	location ^~ /api/ {
		proxy_pass http://127.0.0.1:8080/api/;
	}
    
    location ~/(.*)$ {
        root   /usr/local/nginx/ttm;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

Swagger is used as the interface document in the background. After the project is started, the site can be accessed normally, but an error will be reported when testing the interface in swagger. The error prompt is typeerror: failed to fetch

Problem analysis

Analysis shows that swagger’s actual request address becomes http://127.0.0.1:8080/api/ , it’s not what we actually do http://www.aaa.ink/api/ Interface address. It is found that swagger will obtain a server address according to the user’s request. Due to the use of nginx reverse proxy, swagger obtained the intranet address we configured, resulting in the request unable to respond normally.

Problem solving

location ^~ /api/ {
	proxy_set_header Host $host;
	proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
	proxy_set_header X-Forwarded-Host $server_name;
	proxy_pass http://127.0.0.1:8080/api/;
}

Set the forwarding of background items to the request header so that swagger can get the real address. The problem can be solved.

Springboot integration RabbitMQ times error: Failed to check/redeclare auto-delete queue(s).

Today, when the company server rabbitmq related configuration is changed to local related configuration in the code, an error is reported: failed to check/redeclare auto delete queue (s)

Error reporting reason:

15672 is the port of the web management interface; 5672 is the port accessed by MQ, so changing the port in the configuration file to 5672 is OK;

Fastjson Error: Error: Cannot create inner bean ‘org.springframework.http.converter.json.MappingJackson2HttpMessageConverter

Error: Cannot create inner bean ‘org.springframework.http.converter.json.MappingJackson2HttpMessageConverter#0

The spring-mvc.xml configuration file is written like this

 <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                 <property name="objectMapper">
                     <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                         <property name="failOnEmptyBeans" value="false"/>
                     </bean>
                 </property>
             </bean>

reason:

Only the fastjosn dependency is imported, and the following dependency is not imported

 <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
             <version>2.12.4</version>
         </dependency>

These three jar packages are missing from the generated package

jackson-annotations-2.12.4.jar jackson-databind-2.12.4.jar jackson-core-2.12.4.jar

The problem is solved after importing dependencies.

How to Solve Error: No suitable driver found for

No suitable driver found for jdbc:mysql:localhost:mysql when using JDBC to connect to MySQL database
MySQL version: 8.0.26
Change the driver to:
“jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai”

import java.sql.*;

public class JDBCTest {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        Connection conn = null;
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai","root","dcc12345");
            System.out.println("数据库连接成功");

        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            if(conn != null){
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
    }
}

The writing method of the new version of MySQL driver is different from that of the previous version. Jar package 8.0. * everything is common

OpenFeign Error: {“code“:1,“msg“:“JSON parse error: Illegal character ((CTRL-CHAR, code 31))

Error Messages: [{“code”:1,”msg”:”JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\\r, \\n, \\t) is allowed between tokens; nested exception is com.fasterxml.jackson.core.JsonPars… (401 bytes)]
Error:

2021-10-18 20:39:15.514 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] {"fileName":"9e43ef61.png","fileBase64":"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"}
2021-10-18 20:39:15.530 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] ---> END HTTP (26027-byte body)
2021-10-18 20:39:15.575 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] <--- HTTP/1.1 500 Internal Server Error (46ms)
2021-10-18 20:39:15.576 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] cache-control: no-cache, no-store, max-age=0, must-revalidate
2021-10-18 20:39:15.576 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] connection: close
2021-10-18 20:39:15.576 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] content-type: application/json
2021-10-18 20:39:15.576 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] date: Mon, 18 Oct 2021 12:39:15 GMT
2021-10-18 20:39:15.577 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] expires: 0
2021-10-18 20:39:15.577 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] pragma: no-cache
2021-10-18 20:39:15.577 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] x-content-type-options: nosniff
2021-10-18 20:39:15.577 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] x-frame-options: DENY
2021-10-18 20:39:15.577 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] x-xss-protection: 1; mode=block
2021-10-18 20:39:15.578 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] 
2021-10-18 20:39:15.578 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] {"code":1,"msg":"JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\\r, \\n, \\t) is allowed between tokens; nested exception is com.fasterxml.jackson.core.JsonParseException: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\\r, \\n, \\t) is allowed between tokens\n at [Source: (PushbackInputStream); line: 1, column: 2]","total":0,"data":null}
2021-10-18 20:39:15.578 DEBUG [jumper-ecds-rongganlin,f5c0c6b07d96fcab,f5c0c6b07d96fcab] 14180 --- [  XNIO-1 task-2] c.j.b.e.a.feign.rbac.FeignQiNiuService   : [FeignQiNiuService#fileBase64] <--- END HTTP (401-byte body)
feign.FeignException$InternalServerError: [500 Internal Server Error] during [POST] to [http://jumper-rbac/system/upload/fileBase64] [FeignQiNiuService#fileBase64(Map)]: [{"code":1,"msg":"JSON parse error: Illegal character ((CTRL-CHAR, code 31)): only regular white space (\\r, \\n, \\t) is allowed between tokens; nested exception is com.fasterxml.jackson.core.JsonPars... (401 bytes)]
	at feign.FeignException.serverErrorStatus(FeignException.java:231)

Reference log:

code:

Interface scenario: the data transmitted by the body is relatively large. Gzip compression has been used.

Error analysis reason: the message content is large, and some of them have not been transmitted in the past. Therefore, JSON parsing reports an error.

Openfeign uses the httpurlconnection provided by JDK by default. We know that httpurlconnection has no connection pool and its performance and efficiency are relatively low. If the default is adopted, it is likely to encounter performance problems and lead to system failure.

Solution:

Change to okhttpclient mode:

feign.okhttp.enabled=true

ribbon.okhttp.enabled=true

Result: the interface is called normally. As shown below:

Add: it is said on the Internet that the combination of @ getmapping method and @ ResponseBody will report errors. I wrote a test interface filebase (such as the code posted above). The @ getmapping method used with @ ResponseBody has no impact@ The restcontroller interface has the annotation of @ ResponseBody (as shown in the figure below).

The operation results are shown in the following two figures: