J2EE環境からJakarta EE 8環境へ移行したアプリケーションにおいて、Content-Typeのcharsetの内容がShift_JISからWindows-31Jに変わってしまいました。

Interstage Application Server の技術情報はこちら

J2EE環境からJakarta EE 8環境へ移行したアプリケーションにおいて、Content-Typeのcharsetの内容がShift_JISからWindows-31Jに変わってしまいました。
対処方法を教えてください。
JakartaEE8では、HTTPリクエストの取得に使う文字コードをアプリケーションで設定すると、Content-Typeヘッダーのcharset属性にも同じ文字コードが反映されるようになりました。
アプリケーションやフレームワーク等がrequest.setCharacterEncoding(String)メソッドを呼び出した場合、以降に呼び出したrequest.getContentType()メソッドで取得されるcharsetに反映されます。(Servlet仕様に明記されていない部分における実装差異です。)

例) クライアントから送信されたcharsetを上書き
  1) request.getContentType()
   ⇒ ......,charset=Shift_JIS
  2) request.setCharacterEncoding("Windows-31J")
  3) request.getContentType()
   ⇒ ......,charset=Windows-31J

<対処方法>
  HttpServletRequestWrapperをextendしたラッパークラスを実装する事でsetCharacterEncoding
  前の値を取得することができます。

<実装例>
  1) HttpServletRequestWrapperをextendしたラッパークラスを作成します。
   例:
  ----------------------
 public class TestServletRequest extends HttpServletRequestWrapper {

  private String contentType;

      public TestServletRequest( HttpServletRequest request ) {
          super(request);
      }

      public String getContentType() {
          if (this.contentType != null) {
              return this.contentType;
          } else {
              return (super.getContentType());
          }
      }

      public void setCharacterEncoding( String n ) throws UnsupportedEncodingException {
          contentType = super.getContentType();
          super.setCharacterEncoding(n);
      }
  }
  ----------------------

  2) 1)で作成したラッパークラスを使用するフィルターを作成します。
   例:
  ----------------------
  public class SetCharacterEncodingFilter implements Filter {

      private FilterConfig filterConfig = null;

      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
          chain.doFilter(new TestServletRequest((HttpServletRequest)request), response);
      }

      public void init(FilterConfig filterConfig) throws ServletException {
          this.filterConfig = filterConfig;
      }

      public void destroy() {
      }
  }
  ----------------------

  3) 2)のフィルターをweb.xmlに指定します。
    charsetの上書きが既存のフィルターにより実施されている場合は、
    当該フィルターより先に動作するよう、filter-mappingの定義順を設定します。
    (filterの定義順ではありません。)
    なお、WebFilterアノテーションでは順番は指定できません。web.xmlに記述する必要があります。
   例:
  ----------------------
      <filter>
          <filter-name>追加するフィルター名</filter-name>
          <filter-class>追加するフィルタークラス</filter-class>
      </filter>
      <filter>
          <filter-name>既存のフィルター名</filter-name>
          <filter-class>既存のフィルタークラス</filter-class>
      </filter>

      <filter-mapping>
          <filter-name>追加するフィルター名<</filter-name>
          <<url-pattern>/対象URLパターン</url-pattern>
      </filter-mapping>
      <filter-mapping>
          <filter-name>既存のフィルター名</filter-name>
          <url-pattern>/対象URLパターン</url-pattern>
      </filter-mapping>
  ----------------------
製品・サービス区分 Interstage
製品・サービス情報
対象製品 Interstage Application Server
バージョン V13
プラットフォーム Windows, Solaris, Linux
アンサー種別 構築(導入/移行)