0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EfwフレーワークのTomcat10対応のメモ

Last updated at Posted at 2024-09-02

背景

Efwがいままではtomcat7・8・9対応ですが、最近tomcat10も対応するようにしました。

Githubには、従来とjakarta対応2つフォルダに分けてソースを格納するようにしました。
https://github.com/efwGrp/efw4.X/tree/master/src
https://github.com/efwGrp/efw4.X/tree/master/src4jakarta

リリースのjarファイルも従来とjakarta対応を2つjarにしました。

<dependency><groupId>io.github.efwgrp</groupId><artifactId>efw</artifactId><version>4.07.019</version></dependency>
<dependency><groupId>io.github.efwgrp</groupId><artifactId>efw</artifactId><version>4.07.019jakarta</version></dependency>

修正箇所と考え方をメモします。

jakartaに変更するjavaxクラス

基本的にjavaxのクラスをjakartaのものに変更することで対応しています。以下のように変更対象のクラスをリストします。

//Servlet関連
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//Filter関連
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.annotation.WebFilter;
//jspカスタマイズタグ関連
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
//メール送信関連
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
//Cookie関連
import javax.servlet.http.Cookie;
//セッション関連
import javax.servlet.http.HttpSession;

変更対象外のjavaxクラス

すべてのjavaxがjakarta対応していることではありません。一括置換はだめです。以下のjavaxクラスはjakartaなしとわかりました。

//スクリプトエンジン関連
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleScriptContext;
import javax.script.ScriptContext;
//XML関連
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
//ネーミング関連
import javax.naming.InitialContext;
import javax.naming.NamingException;
//Dataリソース関連
import javax.sql.DataSource;

コンテキストの変更

context.xmlファイルにもjavaxの記載があるので、このファイルの修正も必要です。注意点ですが、javax.sql.DataSourceはjakarta変更対象外で、javax.mail.Sessionはjakarta変更対象です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Context>
<Context>
	<Resource
		name			=	"jdbc/efw"
		auth			=	"Container"
		type			=	"javax.sql.DataSource"
		driverClassName	=	"org.postgresql.Driver"
		url				=	"jdbc:postgresql://localhost:5432/skeletonSample"
		username		=	"postgres"
		password		=	"postgres"
		maxTotal		=	"10"
		maxIdle			=	"10"
		maxWaitMillis	=	"10"
	/>
	<Resource
		name			=	"mail/efw"
		auth			=	"Container"
		type			=	"javax.mail.Session"
		username		=	"username"
		password		=	"password"
		mail.debug		=	"false"
		mail.user		=	"user"
		mail.from		=	"from@host"
		mail.transport.protocol="smtp"
		mail.smtp.host	=	"mailhost"
		mail.smtp.auth	=	"true"
		mail.smtp.port	=	"25"
		mail.smtp.starttls.enable="true"
		description		=	"E-Mail Resource"
	/>
</Context>

メール送信用のjarも更新します。

<!-- javaxの場合 -->
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

<!-- jakartaの場合 -->
<dependency>
    <groupId>org.eclipse.angus</groupId>
    <artifactId>jakarta.mail</artifactId>
    <version>2.0.3</version>
</dependency>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?