2017-06-27 51 views
4

Tomcatコンテナで動作していたSpringブートアプリケーションを、埋め込みTomcatを実行するSpringブートアプリケーションに移行します。 私の古いTomcatの設定は、server.xmlのこれらの構成があります。SpringブートTomcat設定、コンテナから埋め込みへの移行

<Connector 
    executor="tomcatThreadPool" 
    port="8080" 
    protocol="org.apache.coyote.http11.Http11NioProtocol" 
    acceptCount="500" 
    acceptorThreadCount="2" 
    maxThreads="150" 
    maxHttpHeaderSize="32768" 
    maxHeaderCount="256" 
    connectionTimeout="20000" 
    maxKeepAliveRequests="-1" 
    redirectPort="8443" 
    useComet="false" 
    socket.appReadBufSize="87380" 
    socket.rxBufSize="87380" 
    socket.performanceConnectionTime="2" 
    socket.performanceLatency="0" 
    socket.performanceBandwidth="1" 
    server="My server" 
    /> 

私は豆

@Bean 
public EmbeddedServletContainerFactory embeddedServletContainerFactory() { 
    TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory = new TomcatEmbeddedServletContainerFactory(); 
    tomcatEmbeddedServletContainerFactory.setProtocol("org.apache.coyote.http11.Http11Nio2Protocol"); 
    tomcatEmbeddedServletContainerFactory.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> { 
     AbstractHttp11JsseProtocol<Nio2Channel> handler = (AbstractHttp11JsseProtocol)connector.getProtocolHandler(); 
     handler.setMaxKeepAliveRequests(-1); 
     handler.setAcceptorThreadCount(2); 
     handler.setMaxHeaderCount(256); 
     connector.setRedirectPort(8443); 
    }); 

    return tomcatEmbeddedServletContainerFactory; 
} 

そしてapplication.xmlの特性を使用してプロパティのほとんどを設定することができました:

server.tomcat.accept-count = 500 
server.tomcat.max-threads = 600 
server.port = 8080 
server.max-http-header-size = 32768 
server.connection-timeout = 20000 

しかし、私はこの部分を設定する方法を理解できません

useComet="false" 
socket.appReadBufSize="87380" 
socket.rxBufSize="87380" 
socket.performanceConnectionTime="2" 
socket.performanceLatency="0" 
socket.performanceBandwidth="1" 
server="My server" 

誰でも私を助けてくれますか? ありがとう

答えて

3

はこれを試してみてください:

connector.setProperty("useComet", Boolean.toString(false)); 
connector.setProperty("socket.appReadBufSize", "87380"); 
connector.setProperty("socket.rxBufSize", "87380"); 
connector.setProperty("socket.performanceConnectionTime", "2"); 
connector.setProperty("socket.performanceLatency", "0"); 
connector.setProperty("socket.performanceBandwidth", "1"); 
connector.setProperty("server", "My server"); 
1
connector.setProperty("socket.appReadBufSize", "87380"); 
connector.setProperty("socket.rxBufSize", "87380"); 
connector.setProperty("socket.performanceConnectionTime", "2"); 
connector.setProperty("socket.performanceLatency", "0"); 
connector.setProperty("socket.performanceBandwidth", "1"); 
connector.setProperty("server", "My server"); 

はとてもうまくいきました。 しかし、connector.setPropertyの戻り値を確認することが重要です。すべてのプロパティを呼び出す正しいメソッドを見つけようとしており、メソッドが見つかってプロパティが設定されていればtrueを返します。 残念ながらconnector.setProperty("useComet", Boolean.toString(false));が機能せず、falseを返しました。

関連する問題