我已经阅读并完成了这个https://www.mkyong.com/spring-boot/spring-boot-configure-maxswallowsize-in-embedded-tomcat/,将它包含在我的一个类中,但我不知道如何确保它应该被执行。我甚至尝试在我的代码中运行该函数,但我不断将ERR_CONNECTION_RESET返回到我的Web应用程序。
我还没有改变其他任何事情。有什么我想念的吗?
答案 0 :(得分:0)
我之前遇到过这个问题并找到这样的解决方案;在 application.properties :
上设置这些参数spring.datasource.test-on-borrow=true
spring.datasource.test-while-idle=true
spring.datasource.validation-query=SELECT 1
但是我的弹簧启动版本并没有对我有用。然后我检查了tomcat jdbc数据源工厂字段,发现application.properties配置没有成功设置dataSourceFactory的字段。
最后,我通过在应用程序初始化后设置这些字段来解决它,并解决了我的连接重置问题。:
@Component
public class PoolConfiguration implements BeanPostProcessor {
@Value("${spring.datasource.test-on-borrow:true}")
private boolean isTestOnBorrow;
@Value("${spring.datasource.test-while-idle:true}")
private boolean isTestWhileIdle;
@Value("${spring.datasource.validation-query:SELECT 1}")
private String validationQuery;
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof TomcatJdbcDataSourceFactory) {
TomcatJdbcDataSourceFactory tomcatJdbcDataSourceFactory = (TomcatJdbcDataSourceFactory) bean;
tomcatJdbcDataSourceFactory.setTestOnBorrow(isTestOnBorrow);
tomcatJdbcDataSourceFactory.setTestWhileIdle(isTestWhileIdle);
tomcatJdbcDataSourceFactory.setValidationQuery(validationQuery);
}
return bean;
}
}