美文网首页
java.lang.IllegalArgumentExcepti

java.lang.IllegalArgumentExcepti

作者: 小吖么小一郎 | 来源:发表于2019-02-26 19:16 被阅读0次

    碰到java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens异常的解决办法

    设置了一个开机自启动的while(true)方法,运行的好好,但是总会在某一个时刻出现报错。


    image.png

    出现问题的原因

    linux服务器我使用的是nginx配置,nginx的默认最大缓冲区为4K,而tomcat的默认缓冲区最大为8K。
    导致出现IllegalArgumentException异常是因为最大缓冲区不够导致的,只需要设置自带的tomcat的缓冲区就行。

    解决办法

    在conf目录下建立两个java文件即可:
    MyTomcatConnectorCustomizer.java,WebServerConfiguration.java

    public class MyTomcatConnectorCustomizer implements TomcatConnectorCustomizer {
    
            @Override
            public void customize(Connector connector) {
                Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler();
                // 设置最大连接数
                protocol.setMaxConnections(2000);
                // 设置最大线程数
                protocol.setMaxThreads(2000);
                protocol.setConnectionTimeout(30000);
                // 设置最大缓冲区
                protocol.setMaxHttpHeaderSize(8999);
                protocol.setMaxSavePostSize(4096);
                protocol.setConnectionUploadTimeout(300000);
                protocol.setMaxTrailerSize(8192);
                protocol.setMaxExtensionSize(8192);
                protocol.setMaxSwallowSize(2*1024*1024);
    
            }
    
    }
    
    @Configuration
    public class WebServerConfiguration {
    
        @Bean
        public EmbeddedServletContainerFactory createEmbeddedServletContainerFactory(){
            TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
            tomcatFactory.setPort(8082);
            tomcatFactory.addConnectorCustomizers(new MyTomcatConnectorCustomizer());
            return tomcatFactory;
        }
    }
    

    相关文章

      网友评论

          本文标题:java.lang.IllegalArgumentExcepti

          本文链接:https://www.haomeiwen.com/subject/vbezyqtx.html