【Tomcat カスタマイズ】
1.binフォルダ
2.confフォルダ
3.libフォルダ
4.自己証明書

※カスタマイズ箇所には、 IFA 文字のコメントを入れています。

=============================================================
1.binフォルダ
【概要】
	openOffice の CLASSPATH の設定を有効にする。

【対応方法】
	①service.bat のCLASSPATH に、;%OG_CLASSPATH%

rem === IFA 2018/02/01 openoffice の CLASSPATH や、拡張フォルダ(endorsed7.0)のクラスパスを追加しておきます。これでレジストリにも書き込まれます。
rem set "CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar"
set "CLASSPATH=%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;%OG_CLASSPATH%"

	②setenv.bat	コピー

	③setenv.sh		コピー

=============================================================
2.confフォルダ
【概要】
	tomcat の サーバー設定を行います。
	これは、同一 tomcat環境を、複数起動する場合に、C:\opengionV6\uap\bin\init.bat を
	用意するだけで対応できるようにするための設定です。

【詳細】
	① context.xml
		Alias設定 と、FileNotFoundException 対策 を行います。

	② logging.properties
		logging出力内容の削減 と、DOS窓の文字化け対策 などを行います。
		エンコード UTF-8 で保存してください。
×		${catalina.base}/logs → ${logsDir} に置き換えるカスタマイズを行っています。

	③ server.xml
		portやサーバー名他、パラメータ化(環境変数渡し)をしています。
		これは、同一Tomcat環境を、起動スクリプト(startup.bat)を複数用意するだけで
		複数起動できるようにするための処置です。

×	④ tomcat-users.xml	→ 現状 カスタマイズしていません。
×		manager アプリケーションを実行するにあたり、ユーザー設定をこのファイルで行います。
×		通常のopenGion系アプリケーションがうまく動作しない場合でも、manager だけは
×		動作させたいためです。

	⑤ web.xml
×		default サーブレットの置き換え					→ 現状 カスタマイズしていません。
×			org.opengion.tomcat.CacheDefaultServlet
×		EmbeddedServletOptionsのカスタマイズ実装		→ 現状 カスタマイズしていません。
×			org.opengion.tomcat.HybsServletOptions
		session-timeout の延長 30 → 480
		error-page 設定


【対応方法】
	tomcat/conf フォルダ以下にコピーします。
	この場合、既存の catalina.policy 、catalina.properties 、context.xml
	は、修正していないので、そのまま残っています。

	その後、各環境に合わせて、修正してください。

=============================================================
3.libフォルダ
【概要】
	Tomcat に、追加カスタマイズ設定を行います。
	クラスのメモリ不足が原因で、out of memory エラーを引き起こすことがある為、
	キャッシュすることで、不要な GC の発生を抑えます。

【対応方法】
×	① ogCache.jar
×		conf/web.xml のカスタマイズで、<servlet-class>org.opengion.tomcat.CacheDefaultServlet</servlet-class>
×		の設定で使用するクラスを、追加します。

	② tomcat-9.0.40 以降に、websocket-api.jar で、警告が出る
		警告元の jar ファイルを取り出してコピーする。

		https://search.maven.org/artifact/biz.aQute.bnd/biz.aQute.bnd.annotation
		【保留】biz.aQute.bnd.annotation-6.3.1.jar

		https://mvnrepository.com/artifact/org.osgi/osgi.annotation
		【保留】osgi.annotation-8.1.0.jar

		uap\webapps\gf\build.xml に、以下を追記
			<pathelement path="${env.CATALINA_HOME}/lib/websocket-api.jar" />
			<pathelement path="${env.CATALINA_HOME}/lib/websocket-client-api.jar" />	<!-- tomcat10.1 から必要 -->
<!--
			<pathelement path="${env.CATALINA_HOME}/lib/biz.aQute.bnd.annotation-6.3.1.jar" />
			<pathelement path="${env.CATALINA_HOME}/lib/osgi.annotation-8.1.0.jar" />
-->

	③ javax.servlet → jakarta.servlet 変更に伴う。JSTL の変更と置き場所の変更
		従来は、各物件の WEB-INF\lib に置いていましたが、tomcat10.X.X\lib に変更します。

		※ jstl-X.X.X.jar は、下記のURLより入手します。
	×	https://tomcat.apache.org/download-taglibs.cgi
	×		taglibs-standard-impl-1.2.5.jar
	×		taglibs-standard-spec-1.2.5.jar
	×		taglibs-standard-jstlel-1.2.5.jar			⇒ EL 追加(2022/11/18)
	×		taglibs-standard-compat-1.2.5.jar			⇒ 追加(2022/12/28)

	★	https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl
			最新バージョンを選択後、Filesのjar リンクよりダウンロードします。
			jakarta.servlet.jsp.jstl-3.0.0.jar
				3.0.0 → 3.0.1

		https://search.maven.org/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api
			最新バージョンを選択後、画面右側のDownloadsリンクよりダウンロードします。
			jakarta.servlet.jsp.jstl-api-3.0.0.jar

=============================================================
4.自己証明書
	参考) https://rainbow-engine.com/tomcat-https-certificate/

STEP1：鍵や証明書の作成
	keytool -genkey -alias tomcat -keyalg RSA -keypass [パスワード] -keystore .keystore -storepass [パスワード]

	cd %TOMCAT_HOME%
	%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA -keypass opengionV8 -keystore .keystore -storepass opengionV8

		姓名は何ですか。
		  [Unknown]:  ogV8
		組織単位名は何ですか。
		  [Unknown]:  ogV8
		組織名は何ですか。
		  [Unknown]:  ogV8
		都市名または地域名は何ですか。
		  [Unknown]:  KYOTO
		都道府県名または州名は何ですか。
		  [Unknown]:  KYOTO
		この単位に該当する2文字の国コードは何ですか。
		  [Unknown]:  JP
		CN=ogV8, OU=ogV8, O=ogV8, L=KYOTO, ST=KYOTO, C=JPでよろしいですか。
		  [いいえ]:  y

		90日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています
		        ディレクトリ名: CN=ogV8, OU=ogV8, O=ogV8, L=KYOTO, ST=KYOTO, C=JP

STEP2：証明書の配備（任意）
	conf の直下にします。(上記で、先にTomcat/conf に CD しています)

STEP3：server.xmlの編集
	サンプルを用意しておきます。コメントアウトしておきます。

<!-- https 用の 自己証明書(サンプル) -->
<!--
	<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
			   maxThreads="150" SSLEnabled="true">
		<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
		<SSLHostConfig>
			<Certificate
				certificateKeystoreFile="conf/.keystore"
				certificateKeystorePassword="opengionV8"
				type="RSA" />
		</SSLHostConfig>
	</Connector>
-->

STEP4：ファイアウォール設定
	ファイアウォールで8443ポートを開放します。

STEP5：疎通チェック

	http://opengionV8:8828/gf/jsp/index.jsp
	https://opengionV8:8444/gf/jsp/index.jsp

