Ponz Dev Log

ゆるくてマイペースな開発日記

Java

Open Libertyをオフライン環境でもZIPファイルから起動する

タイトルの記事をQiitaに投稿しました。 やんごとなき理由でMaven Centralなどにアクセスできないオフライン環境で開発するシーン向けです。 Liberty Maven pluginのおかげでZIPファイルさえあればオンライン環境と同じ開発体験が得られるのはいいですね。 q…

Open Libertyで管理するDatasourceをSpring BootからJNDI参照する

タイトルの記事をQiitaに投稿しました。 データベースの接続情報やコネクションプールの設定をアプリサーバー側で管理している状況で、Spring Bootからアプリサーバーで持っているDataSourceを使いたかったのでので備忘録でした。Javaのコードは書かずSpring…

Spring Boot 3アプリのJARをOpen Libertyにデプロイして動かす

Qiitaにタイトルの記事を投稿しました。 Spring Boot 3系のJARファイルもようやくデプロイするためのフィーチャーがリリースされたので早速触ってみたという記事です。 qiita.com 今までもWARファイルでもデプロイできたのですが、TomcatのAPIへの依存をpom.…

s2i で Open Liberty アプリケーションのコンテナイメージをビルドする

Qiitaにタイトルの記事を投稿しました。 qiita.com 記事は Open Liberty のビルダーイメージを使っていますが、商用版の WAS Liberty s2i も同じことをできるはずです。 github.com 記事内ではしれっとJava 17のビルダーイメージを使っていますが、実はバー…

OpenLiberty with MicroProfile TelemetryでNew Relicにトレース情報を送る

Qiitaにタイトルの記事を投稿しました。 MicroProfileを使うためのアプリサーバにOpen Libertyを利用しています。 qiita.com 以前の記事で「トレース情報を送信するならSaaSもいいよね」的なことを書いたので、せっかくなら試してみようと記事にしました。 N…

OpenLiberty with MicroProfile Telemetryで手軽に分散トレーシング

Qiitaにタイトルの記事を投稿しました。 qiita.com 過去にOpen LibertyからJaegerにOtelでトレース情報を送信する記事を投稿しましたが、あちらの記事ではJava Agentを使用しています。 内部的にはOpenTelemetry Java SDKを使っているはずですが取得できる情…

TomcatのHealth Check Valveでヘルスチェックを有効化する

Apache TomcatはHealth Check Valveを使用することでヘルスチェックを有効化できます。 ヘルスチェック設定方法とOpenShift上のJWSコンテナで利用する方法を書きます。 Health Check Valveを利用可能なTomcatバージョン Changelogを見る限り、Health Check V…

TomcatアプリケーションをS2Iでコンテナ化してOpenShiftで動かす

Tomcatで動作するJavaアプリケーションをS2Iでコンテナ化してOpenShiftで動作させる方法の備忘録です。 手元にTomcatアプリケーションはあるけど、コンテナ化やOpenShift/k8sの設定が面倒だなというモチベーションで調査した結果を書き残します。 環境情報 …

Open Libertyで出力するJSONログは末尾に改行を入れるな

Open LibertyでJSON形式のログを出す場面でハマったので、解決方法の備忘録です。 課題 以下の記事を参考にOpen Liberty上で稼働するJakarta EEアプリケーションのJSONログを標準出力に書き出そうとしました。 このアプリケーションは、Log4j 2でログをJSON…

Javaアプリのトレース情報をJaegerにOpenTelemetry Protocolで送りつける

Jaeger v1.35からOpenTelemetry Protocol (OTEL) によるトレース情報を受け付けられるようになりました。 JavaアプリからOTELでトレース情報を送信・参照してみます。 元記事はこちら。 medium.com 5月末にリリースされたJaeger v1.35からOpenTelemetryをネ…

Nexus × HelmでプライベートMavenリポジトリをKubernetes上に立てる

MavenでJavaのアプリをビルドすると、CIサーバーなどクリーンな環境ではライブラリのダウンロードに時間がかかります。 5分程度ならまだしも、正直10分を超えると気軽にビルドして検証するには支障が出るのでキツイ。特にプロキシ環境下。 そこでMaven Centr…

grpc-javaではX-Ray SDKのAWSXRayServletFilterが使えない

JavaでgRPCサーバーを立ててX-RayのトレースIDを取ろうとしたらハマった話です。 何が起きたのか? 某所でgRPCの検証をしていてX-Rayでトレースした時に、 AWS公式の"incoming request"のやり方でAWSXRayServletFilterを使用してもトレースを取得できません…

MavenでAvroのスキーマファイルからJavaコードを生成するのにつまづいた

Kafka Tutorialsを進めていたときに、タイトル通りMavenでAvroのスキーマからJavaのコード生成するのにつまづいた話です。 このサイトに掲載されているサンプルコードは全てGradleでビルドされているのですが、自分が良く使っているMavenだったらどうかなと…

技術書典8でKafka本を出します

前回の技術書典7に引き続き、技術書典8でも技術同人誌を出すことになりました! 2月になると宣伝する余裕がなさそうなので、今のうちに宣伝しておきます。 techbookfest.org 今回出す本 今回は分散ストリーミングプラットフォームのKafkaの解説同人誌を出す…

BuildKitを使って docker build のビルド時間を半分以下にする

元ネタはAWS CodeBuildでBuildKitがサポートされたという話。 dev.classmethod.jp BuildKitとは、Docker v18.06から搭載された "次世代 docker build" のようです。BuildKitを使わないよりも圧倒的にビルドパフォーマンスが高くなる&セキュアにビルドできる…

Gradleを使ってIBM Cloud Functions with Javaの関数を実装する

あけましておめでとうございます。新年一発目はサーバーレスです。 昨年はNode.jsしかほとんど触らなかったIBM Cloud Functions(OpenWhisk)をJavaで実装します。 ただし、公式のチュートリアルだと自力でgsonにCLASSPATH通してデプロイしてねと雑にしか書い…