nio2连接器需要tomcat8.0以上才有
修改conf目录下的server.xml
<!-- HTTP1.1连接器 tmocat8以上默认使用NIO,7及以下默认BIO -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 修改protocol属性使用NIO2 -->
<Connector port="8080" protocol="org.apache.coyote.http11.Http11Nio2Protocol"
connectionTimeout="20000"
redirectPort="8443" />
<!-- AJP1.3连接器 tmocat8以上默认使用NIO,7及以下默认BIO -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<!-- 修改protocol属性使用NIO2 -->
<Connector port="8009" protocol="org.apache.coyote.ajp.AjpNio2Protocol" redirectPort="8443" />
若是嵌入式使用
//NIO2 HTTP 1.1
Connector httpConnector = new Connector("org.apache.coyote.http11.Http11Nio2Protocol");
httpConnector.setPort(port);
httpConnector.setURIEncoding(URIEncoding);
httpConnector.setMaxPostSize(maxPostSize);
httpConnector.setAttribute("maxThreads", maxThreads);
httpConnector.setAttribute("acceptCount", acceptCount);
httpConnector.setAttribute("disableUploadTimeout", true);
httpConnector.setAttribute("enableLookups", false);
tomcat.getService().addConnector(httpConnector);
//NIO2 AJP 1.3
Connector ajpConnector = new Connector("org.apache.coyote.ajp.AjpNio2Protocol");
ajpConnector.setPort(8009);
tomcat.getService().addConnector(ajpConnector);
修改后正常启动应该能看到如下的终端输出/日志
八月 04, 2018 10:25:01 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-nio2-8080"]
八月 04, 2018 10:25:01 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-nio2-8009"]