環境
- Windows 7 Professional SP1 64ビット
- Oracle OpenJDK 11.0.2 (2019/01/15)
- Apache Tomcat 9.0.20 (2019/05/13)
Oracle OpenJDK 11.0.2 (2019/01/15)をダウンロードする
JDK Builds from Oracle http://jdk.java.net/ Ready for use: JDK XX Archive (左メニュー) Archived OpenJDK General-Availability Releases Releases 11.0.2 Windows 64-bit zip (sha256) 179MB (openjdk-11.0.2_windows-x64_bin.zip)
Oracle OpenJDK 11.0.2 (2019/01/15)をインストールする
zipファイルを展開して好きな場所に置く。このドキュメントでは以下の場所とする。
D:\opt\oracle-openjdk-11.0.2
Apache Tomcat 9.0.20 (2019/05/13)をダウンロードする
Apache Tomcat https://tomcat.apache.org/ Download Tomcat 9 Tomcat 9 Software Downloads https://tomcat.apache.org/download-90.cgi 9.0.20 README https://www-us.apache.org/dist/tomcat/tomcat-9/v9.0.20/README.html Binary Distributions Core zip (apache-tomcat-9.0.20.zip)
Apache Tomcat 9.0.20 (2019/05/13)をインストールする
zipファイルを展開して好きな場所に置く。このドキュメントでは以下の場所とする。
D:\opt\apache-tomcat-9.0.20
Apache Tomcat 9.0.20 (2019/05/13)の仕様
- Tomcat 9.0 requires Java SE 8 or later
- Servlet 4.0
- JavaServer Pages 2.3
関連情報
Tomcatの設定
Tomcat Setup https://tomcat.apache.org/tomcat-9.0-doc/setup.html Introduction RUNNING.txt https://tomcat.apache.org/tomcat-9.0-doc/RUNNING.txt
"setenv" script
ファイルを作成してJDKのパスを記述する。
D:\opt\apache-tomcat-9.0.20\bin\setenv.bat set "JAVA_HOME=D:\opt\oracle-openjdk-11.0.2" exit /b 0
リモートデバッグ
引数 "jpda" を追加してTomcatを起動する。
D:\opt\apache-tomcat-9.0.20\bin\startup.bat rem call "%EXECUTABLE%" start %CMD_LINE_ARGS% call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
catalina.batに説明が書いてある。
D:\opt\apache-tomcat-9.0.20\bin\catalina.bat echo Usage: catalina ( commands ... ) echo commands: echo debug Start Catalina in a debugger echo debug -security Debug Catalina with a security manager echo jpda start Start Catalina under JPDA debugger echo run Start Catalina in the current window echo run -security Start in the current window with security manager echo start Start Catalina in a separate window echo start -security Start in a separate window with security manager echo stop Stop Catalina echo configtest Run a basic syntax check on server.xml echo version What version of tomcat are you running?
参考
ポート番号
デフォルトの8080が使用されている場合は起動ログにエラーが表示されるので他のポートに変更する。
18-May-2019 02:31:06.985 重大 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException コンポーネント[Connector[HTTP/1.1-8080]] の初期化に失敗しました。 org.apache.catalina.LifecycleException: プロトコルハンドラの初期化に失敗しました at org.apache.catalina.connector.Connector.initInternal(Connector.java:983) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:533) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1059) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136) at org.apache.catalina.startup.Catalina.load(Catalina.java:584) at org.apache.catalina.startup.Catalina.load(Catalina.java:607) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:304) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474) Caused by: java.net.BindException: Address already in use: bind at java.base/sun.nio.ch.Net.bind0(Native Method) at java.base/sun.nio.ch.Net.bind(Net.java:461) at java.base/sun.nio.ch.Net.bind(Net.java:453) at java.base/sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:227) at java.base/sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:80) at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:248) at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:222) at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1119) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1132) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:557) at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74) at org.apache.catalina.connector.Connector.initInternal(Connector.java:980) ... 13 more
server.xmlのHTTP Connectorのポートを変更する。
Documentation Index https://tomcat.apache.org/tomcat-9.0-doc/index.html Reference Apache Tomcat 9 Configuration Reference https://tomcat.apache.org/tomcat-9.0-doc/config/index.html Connectors (左メニュー) HTTP 1.1 The HTTP Connector https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
D:\opt\apache-tomcat-9.0.20\conf\server.xml <!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> --> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
動作確認
コマンドプロンプトのログは文字化けしているがログファイルでは読める。
Tomcatを起動する。
D:\opt\apache-tomcat-9.0.20\bin\startup.bat
D:\opt\apache-tomcat-9.0.20\logs\catalina.YYYY-MM-DD.log 18-May-2019 16:10:11.882 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log Serverのバージョン名:Apache Tomcat/9.0.20 18-May-2019 16:10:11.887 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log Server ビルド: May 3 2019 22:26:00 UTC 18-May-2019 16:10:11.888 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log サーバーのバージョン番号:9.0.20.0 18-May-2019 16:10:11.889 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log OS 名: Windows 7 18-May-2019 16:10:11.890 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log OS バージョン: 6.1 18-May-2019 16:10:11.890 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log アーキテクチャ: amd64 18-May-2019 16:10:11.891 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: D:\opt\oracle-openjdk-11.0.2 18-May-2019 16:10:11.892 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM バージョン: 11.0.2+9 18-May-2019 16:10:11.893 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM ベンダ: Oracle Corporation 18-May-2019 16:10:11.893 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: D:\opt\apache-tomcat-9.0.20 18-May-2019 16:10:11.894 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\opt\apache-tomcat-9.0.20 18-May-2019 16:10:11.899 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:--add-opens=java.base/java.lang=ALL-UNNAMED 18-May-2019 16:10:11.900 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:--add-opens=java.base/java.io=ALL-UNNAMED 18-May-2019 16:10:11.901 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 18-May-2019 16:10:11.901 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Djava.util.logging.config.file=D:\opt\apache-tomcat-9.0.20\conf\logging.properties 18-May-2019 16:10:11.902 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 18-May-2019 16:10:11.903 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Djdk.tls.ephemeralDHKeySize=2048 18-May-2019 16:10:11.904 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Djava.protocol.handler.pkgs=org.apache.catalina.webresources 18-May-2019 16:10:11.904 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-agentlib:jdwp=transport=dt_socket,address=localhost:8000,server=y,suspend=n 18-May-2019 16:10:11.905 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Dignore.endorsed.dirs= 18-May-2019 16:10:11.906 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Dcatalina.base=D:\opt\apache-tomcat-9.0.20 18-May-2019 16:10:11.906 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Dcatalina.home=D:\opt\apache-tomcat-9.0.20 18-May-2019 16:10:11.907 情報 [main] org.apache.catalina.startup.VersionLoggerListener.log コマンドライン引数:-Djava.io.tmpdir=D:\opt\apache-tomcat-9.0.20\temp 18-May-2019 16:10:11.908 情報 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 商用環境に最適な性能を発揮する APR ベースの Tomcat ネイティブライブラリが java.library.path [] に存在しません。 18-May-2019 16:10:12.136 情報 [main] org.apache.coyote.AbstractProtocol.init プロトコルハンドラ ["http-nio-8081"] を初期化します。 18-May-2019 16:10:12.234 情報 [main] org.apache.coyote.AbstractProtocol.init プロトコルハンドラ ["ajp-nio-8009"] を初期化します。 18-May-2019 16:10:12.240 情報 [main] org.apache.catalina.startup.Catalina.load サーバーの初期化 [558]ms 18-May-2019 16:10:12.284 情報 [main] org.apache.catalina.core.StandardService.startInternal サービス [Catalina] を起動します 18-May-2019 16:10:12.286 情報 [main] org.apache.catalina.core.StandardEngine.startInternal サーブレットエンジンの起動:[Apache Tomcat/9.0.20] 18-May-2019 16:10:12.294 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\docs] を配備します 18-May-2019 16:10:12.606 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory ディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\docs] の Web アプリケーションの配置は [312] ms で完了しました。 18-May-2019 16:10:12.607 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\examples] を配備します 18-May-2019 16:10:12.823 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory ディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\examples] の Web アプリケーションの配置は [216] ms で完了しました。 18-May-2019 16:10:12.825 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\host-manager] を配備します 18-May-2019 16:10:12.852 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory ディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\host-manager] の Web アプリケーションの配置は [28] ms で完了しました。 18-May-2019 16:10:12.853 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\manager] を配備します 18-May-2019 16:10:12.874 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory ディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\manager] の Web アプリケーションの配置は [21] ms で完了しました。 18-May-2019 16:10:12.875 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory Webアプリケーションディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\ROOT] を配備します 18-May-2019 16:10:12.891 情報 [main] org.apache.catalina.startup.HostConfig.deployDirectory ディレクトリ [D:\opt\apache-tomcat-9.0.20\webapps\ROOT] の Web アプリケーションの配置は [16] ms で完了しました。 18-May-2019 16:10:12.896 情報 [main] org.apache.coyote.AbstractProtocol.start プロトコルハンドラー ["http-nio-8081"] を開始しました。 18-May-2019 16:10:12.906 情報 [main] org.apache.coyote.AbstractProtocol.start プロトコルハンドラー ["ajp-nio-8009"] を開始しました。 18-May-2019 16:10:12.909 情報 [main] org.apache.catalina.startup.Catalina.start サーバーの起動 [668]ms
リモートデバッグを有効にしている場合はコマンドプロンプトに以下のログが出力されている。
Listening for transport dt_socket at address: 8000
Tomcatを終了する。
D:\opt\apache-tomcat-9.0.20\bin\shutdown.bat
18-May-2019 16:17:16.812 情報 [main] org.apache.catalina.core.StandardServer.await 有効なシャットダウンコマンドがシャットダウンポート経由で受信されました。 サーバーインスタンスを停止します。 18-May-2019 16:17:16.834 情報 [main] org.apache.coyote.AbstractProtocol.pause ProtocolHandler ["http-nio-8081"] を一時停止します。 18-May-2019 16:17:16.884 情報 [main] org.apache.coyote.AbstractProtocol.pause ProtocolHandler ["ajp-nio-8009"] を一時停止します。 18-May-2019 16:17:16.930 情報 [main] org.apache.catalina.core.StandardService.stopInternal サービス [Catalina] を停止します 18-May-2019 16:17:16.949 情報 [main] org.apache.coyote.AbstractProtocol.stop ProtocolHandler ["http-nio-8081"]の停止中 18-May-2019 16:17:16.952 情報 [main] org.apache.coyote.AbstractProtocol.stop ProtocolHandler ["ajp-nio-8009"]の停止中 18-May-2019 16:17:16.954 情報 [main] org.apache.coyote.AbstractProtocol.destroy ProtocolHandler ["http-nio-8081"] を破棄します。 18-May-2019 16:17:16.956 情報 [main] org.apache.coyote.AbstractProtocol.destroy ProtocolHandler ["ajp-nio-8009"] を破棄します。
最終的なフォルダ構成
D:\ |+opt |+oracle-openjdk-11.0.2 | |+apache-tomcat-9.0.20 |+bin | |-setenv.bat | |-startup.bat | |-shutdown.bat | |+conf | |-server.xml | |+logs |-catalina.YYYY-MM-DD.log