最近のアクセス:
Jakarta EE と Java EE のサポート

ここでは、GeneXus Java ジェネレーターで追加された Jakarta EE のサポートについて説明します。また、アプリケーションをビルドして Java EE および Jakarta EE をサポートするサーブレットサーバーにデプロイする場合、また、後でサーバーにデプロイするためのパッケージを作成する場合に考慮すべきことについて説明します。

はじめに

Jakarta EE は Java EE が進化したものです。Oracle は Java EE をオープンソースの団体 (Eclipse Foundation) に移管することを決定しました。この移管により名称が Jakarta EE に変更されました。また、最も重要な点として、クラスのすべてのパッケージが javax.* から jakarta.* に名称変更されました。
コンテナサーブレットの新しいバージョンでは既に Jakarta EE が実装され始めています。たとえば、Tomcat 10、GlassFish 6.0、Jetty 11 などです。
つまり、既存のプログラムをサーバーの新しいバージョンで稼働させるには、使用するフレームワーククラスを javax.* から jakarta.* に変更して再コンパイルする必要があります。

GeneXus Java ジェネレーターに加えられた変更

GeneXus 17 Upgrade 5 以降では両方のバージョンがサポートされます。そのため、コードをコンテナサーブレットの新規バージョンで実行することも、以前から稼働させていたバージョンで実行することもできます。そのために、標準クラスでリファクタリングが行われたほか、生成済みのコードの変更も必要になります。

標準クラス

GeneXus 標準クラスでリファクタリングが行われました。
gxclassR.jar JAR から javax パッケージへのすべての参照が削除され、インターフェースのみを含む gxwrappercommon.jar という新しい JAR が実装されました。
  • javax は、gxwrapperjavax.jar という新しい JAR でサポートされます。
  • jakarta は、gxwrapperjakarta.jar という新しい JAR でサポートされます。

生成済みのコード

生成済みのコードについては、新しい [ Java platform support ] プロパティがあり、Java EE 向けに生成するか Jakarta EE 向けに生成するか、あるいは Java EE と Jakarta EE の両方を対象として生成するかを選択できます。

デプロイメント

GeneXus では今後、JAR gxclassR.jar に加えて JAR gxwrappercommon.jar も含まれるようになります。また、選択したサーブレットコンテナのバージョンによっては、JAR gxwrapperjavax.jar か gxwrapperjakarta.jar が含まれます。
ローカルの Tomcat 環境へのデプロイメントを管理するために、[ Tomcat version ] プロパティ[ Tomcat path ] プロパティが新たに作成されました。

互換性

いくつかの標準クラスを使用する手書きのコードが gxwrappercommon.jar JAR でインターフェースとして実装された場合、コードの修正が必要になることがあります。

次に、問題があるコードのサンプルと、修正したコードのサンプルを示します。
古いコード 1:
java javax.servlet.http.HttpServletResponse response = httpContext.getResponse();
java response.setStatus( [ !&CodeService! ] );
修正したコード 1:
java com.genexus.servlet.http.IHttpServletResponse response = httpContext.getResponse();
java response.setStatus( [ !&CodeService! ] );
古いコード 2:
java bos = new java.io.BufferedOutputStream( respuesta.getOutputStream() );
修正したコード 2:
java bos = new java.io.BufferedOutputStream( respuesta.getOutputStream().getOutputStream() );
: 修正したコードは Jakarta EE と Java EE のどちらでも機能しますが、古いコードは Java EE でのみ機能します。

 

参考情報



サブページ
Created: 21/12/21 17:14 by Admin Last update: 22/03/14 00:48 by Admin
カテゴリ
Powered by GXwiki 3.0