25.0.0.11 における注目すべきバグ修正
この GA リリースには、安定性を向上させ、パフォーマンスを改善し、よりスムーズなユーザー・エクスペリエンスを提供する重要なバグ修正が含まれています。
以前の Open Liberty GA リリースのブログ投稿 もチェックして下さい。
25.0.0.11 でアプリを開発して実行する
もし Maven を使用しているなら、pom.xml に以下を含めます。
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.5</version>
</plugin>
Gradle を使用している場合は、build.gradle ファイルに以下を含めます。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'io.openliberty.tools:liberty-gradle-plugin:3.9.5'
}
}
apply plugin: 'liberty'
コンテナ・イメージ を使用する場合は以下です。
FROM icr.io/appcafe/open-liberty
もしくは ダウンロード・ページ をご覧下さい。
IntelliJ IDEA、Visual Studio Code または Eclipse IDE を使用している場合、これらの IDE で効率的な開発・テスト・デバッグとアプリケーション管理のすべてを実行するために、オープンソースの Liberty Tools を利用することができます。
このリリースで修正された注目すべきバグ
このリリースでは、いくつかのバグが修正されました。以下のセクションでは、解決された主要な問題のいくつかを紹介します。修正の完全なリストについては、25.0.0.11 で修正されたバグの完全なリスト をご覧ください。
-
JSON レコードが改行で終わる場合に
appsWriteJSONが正しく動作しないLogback ロギング・フレームワークを使用し、ロガーがメッセージを JSON 形式に変換するエンコーダー(例:
co.elastic.logging.logback.EcsEncoder)を使用してSTDOUTにロギング・イベントをルーティングするように設定されている場合、メッセージ全体は 改行 で終わります。appsWriteJson設定が true に設定されている OpenLiberty サーバーと組み合わせた場合、期待される動作は、Logback から出力される JSON が、通常の Open Liberty JSON ログ出力のmessage値内にラップされないことです。しかし、実際にはラップされてしまいます。 -
MicroProfileRestClient の非同期で multipart/form-data を送信すると、以下の例外が発生します。
java.util.concurrent.CompletionException: jakarta.ws.rs.ProcessingException: RESTEASY004655: Unable to invoke request: jakarta.ws.rs.WebApplicationException: Unexpected entity instance: org.jboss.resteasy.plugins.providers.multipart.ResteasyEntityPartBuilder$EntityPartImpl -
圧縮されたボディを持つ POST リクエストで、以下の例外が発生します。
SRVE0216E: post body contains less bytes than specified by content-length -
設計上の問題:英数字以外の文字を含むサーバー名での
server createの動作が一貫していない./server create …を使用してサーバーを作成する際、サーバー名に英数字以外の文字(ドキュメントで指定されていない文字)が含まれている場合、動作が一貫していません。例えば:
./server create 'this£server'は以下を返します:
CWWKE0005E: The runtime environment could not be launched. CWWKE0012E: The specified server name contains a character that is not valid (name=this£server). Valid characters are: Unicode alphanumeric (e.g. 0-9, a-z, A-Z), underscore (_), dash (-), plus (+), and period (.). A server name cannot begin with a dash (-) or period (.).しかし
./server create 'this$server'は以下を返します:
Server this created.また、サーバー名に空白が含まれている場合、サーバー名が引用符で囲まれているかどうかに関わらず、最初の空白の前のテキストを使用してサーバーが作成されます。例えば:
./server create 'this server'は以下を返します:
CWWKE0027W: Only one server may be specified on the command line; subsequent names will be ignored (server=this, ignored=server). Server this created. -
カスタム Subject がキャッシュにない場合の継続的な認証をサポート
シングル・サインオン(SSO)環境では、ユーザーは特定の管理タスクを実行するために、アプリケーション内で一時的に権限を管理者レベルに昇格させる必要がある場合があります。しかし、AuthenticationException によってこのシナリオが正常に機能しません。
この問題は、LTPA(Lightweight Third-Party Authentication)トークンが有効であるにもかかわらず発生します - トークンは正常に復号化および解析でき、有効期限と署名の両方が適切に検証されます。
認証の失敗は、WebSphere Liberty サーバーが認証キャッシュ内で昇格されたユーザーの Subject を見つけることができないために発生し、権限昇格プロセス中に認証が失敗します。
この制限により、同じ SSO セッション内で一時的な権限昇格が必要なシナリオでの正当な管理操作が妨げられます。