public StandardThreadExecutor init() { final StandardThreadExecutor executor = new StandardThreadExecutor(); executor.setName(name); executor.setDaemon(daemon); executor.setNamePrefix(namePrefix); executor.setMaxThreads(maxThreads); executor.setMinSpareThreads(minSpareThreads); executor.setMaxIdleTime(maxIdleTime); executor.setMaxQueueSize(maxQueueSize); executor.setPrestartminSpareThreads(prestartminSpareThreads); executor.setThreadRenewalDelay(threadRenewalDelay); return executor; }
/** * HTTP/HTTPS接続用コネクタを設定する. */ @Override protected void initConnectors() throws IOException, SocketException { // HTTPアクセス用コネクタの設定 super.initConnectors(); // HTTPS用アクセスのためのスレッドプールの設定 StandardService service = (StandardService) tomcat.getService(); StandardThreadExecutor executor2 = new StandardThreadExecutor(); executor2.setName("executor2"); executor2.setNamePrefix("executor2-"); service.addExecutor(executor2); // Java標準のKeyStoreで証明書を用いる場合は、プロトコルを明示しておく。 // "HTTP/1.1"で指定すると、APRが有効な場合はOpenSSLによるソケットが // 作られるため、証明書もder, crtファイルが必要となる. Connector connector2 = new Connector("org.apache.coyote.http11.Http11Protocol"); setExecutor(connector2, executor2); // HTTPSコネクタの設定 connector2.setPort(443); // HTTPS connector2.setScheme("https"); connector2.setSecure(true); connector2.setAttribute("SSLEnabled", true); connector2.setAttribute("sslProtocol", "TLS"); connector2.setAttribute("bindOnInit", "false"); // 圧縮を有効化 enableCompression(connector2); // ↓クライアント証明書の必要有無 // http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html connector2.setAttribute("clientAuth", "false"); // SSL用のサーバー証明書を格納したKeyStoreを指定. // 以下のコマンドで自己署名の証明書を作成. // keytool -genkey -keyalg RSA -alias sslkey -keystore keystore.jks // -storepass password -validity 3600 -keysize 2048 String keyStoreFile = new File(getAppRootDir(), "keystore.jks").getCanonicalPath(); connector2.setAttribute("keyAlias", "sslkey"); connector2.setAttribute("keystorePass", "password"); connector2.setAttribute("keystoreFile", keyStoreFile); service.addConnector(connector2); // APRを使う場合はderとcrtファイルのによる証明書の指定方法が必要. // SSLCertificateFile="/usr/local/ssl/server.crt" // SSLCertificateKeyFile="/usr/local/ssl/server.pem" // SSLVerifyClient="optional" // SSLProtocol="TLSv1" }