More than the maximum allowed number of cookies, [200]

问题描述:

spring boot 项目 前端访问接口报错

00:02:07.074 [http-nio-9099-exec-8] ERROR o.a.c.h.Http11Processor - [log,175] - Error processing request
java.lang.IllegalArgumentException: More than the maximum allowed number of cookies, [200], were detected.
	at org.apache.tomcat.util.http.ServerCookies.addCookie(ServerCookies.java:48)
	at org.apache.tomcat.util.http.parser.Cookie.parseCookieRfc6265(Cookie.java:234)
	at org.apache.tomcat.util.http.parser.Cookie.parseCookie(Cookie.java:122)
	at org.apache.tomcat.util.http.Rfc6265CookieProcessor.parseCookieHeader(Rfc6265CookieProcessor.java:90)
	at org.apache.catalina.connector.Request.parseCookies(Request.java:3078)
	at org.apache.catalina.connector.Request.getServerCookies(Request.java:2191)
	at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:1017)
	at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:730)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:337)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:791)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1417)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Unknown Source)

解决方案:

cookile的大小默认200,需要更改MaxCookieCount 这个参数的大小,spring boot yml文件里没有MaxCookieCount这个配置项,所以添加一个新的自定义配置类,

@Configuration
public class TomcatCustomizer {

    @Bean
    public ConfigurableServletWebServerFactory configurableServletWebServerFactory(){
        TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
        factory.setProtocol("org.apache.coyote.http11.Http11NioProtocol");
   //     factory.setPort(8850);
        factory.addConnectorCustomizers( connector -> {
            Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
            //protocol.setDisableUploadTimeout(false);//允许执行使用一个较长的连接超时值
            //protocol.setAcceptCount(200);//排队请求的最大数
            //protocol.setMaxThreads(2);// 最大线程数
            //protocol.setMaxConnections(200);// 最大连接数
            //protocol.setMaxHeaderCount(20000);//http请求中header的最大个数
            // protocol.setConnectionTimeout(20000);//设置连接的超时值,以毫秒为单位
            connector.setMaxCookieCount(-1);//  设置Cookie大小 -1不限制
        } );
        return factory;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值