Java

VS CodeでJUnitを実行しようとしたら謎のエラーが出た

久しぶりにLeetCodeをJavaで解いていたらVS Codeがエラーを吐いたので、解決した手順をメモしておく。 [発生したエラー] [拡張機能のバージョン問題] [まとめ]

AWS Systems Manager Run CommandでFargate上のSpring Bootコンテナのスレッドダンプを取得する

とある事情で、AWS Fargate上で稼働しているSpring Bootコンテナのスレッドダンプを取得する必要があった。いくつか詰まる所があったのでメモしておく。 [Fargate上のコンテナでコマンドを実行したい] [SSMエージェントのセットアップ] [Spring Bootアプリの…

Amazon DynamoDBのデータ型とJava SDKのAttributeValue

DynamoDBのJava SDKにあるAttributeValueクラスを操作しようとして、挙動を忘れていることが稀によくあるのでメモしておく。 [DynamoDBのデータ型とAttributeValueクラス] [異なるデータ型のメソッドはnullを返す] [まとめ]

JavaでHTTPS通信時のSSL証明書の失効チェックを有効にする

HTTPS通信を行う際に利用されるSSL証明書の失効チェックについて、質問されてデフォルトの挙動を即答することができなかった。 Javaで失効チェックを利用するための設定方法を調べたのでまとめておく。 [SSL証明書の失効チェック] [デバッグログで見るOCSP/C…

mvn test を実行したら SurefireBooterForkException が発生した

最近、JavaでLeetCodeを解いている。と言ってもEasyレベルのものばかりだけれど。 leetcode.com 問題を解く途中でエラーに遭遇したので、顛末をメモしておく。 [Mavenプロジェクトの構成] [発生した例外] [解決方法] [まとめ]

Java 8とJava 11でJAVA_TOOL_OPTIONS環境変数の挙動が異なる

先週の以下の記事で未検証に終わった部分を検証してみた。 kdnakt.hatenablog.com [JAVA_TOOL_OPTIONS環境変数とは] [Java 8での挙動] [Java 11での挙動] [まとめ]

AWS LambdaにデプロイしたJavaアプリケーションでユーザー定義システムプロパティを参照する

以下のQuarkusを利用したプロジェクトのソースコードを読んでいてなるほど、と思ったので調べたことをまとめておく。 [Javaのシステムプロパティ] [AWS Lambdaと環境変数] [環境変数JAVA_TOOL_OPTIONS] [AWS Lambda (Java 8)の動作確認] [まとめ]

会社でKotlin勉強会(第23回)を開催した

今週は第23回を開催しました。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第23回の様子] [学んだことや疑問点] [まとめ]

Java 11の単一ファイル実行をRemote - Containers上でshebangとして実行してみた

またまたRemote - Containersの話です。今回はJava。 [Remote - Containersを使う動機] [Java 11コンテナのセットアップ] [単一ファイルの実行] [shebangとしてのJava実行] [まとめ]

会社でKotlin勉強会(第22回)を開催した

今週は第22回を開催しました。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第22回の様子] [学んだことや疑問点] [まとめ]

会社でKotlin勉強会(第21回)を開催した

今週は第21回を開催しました。 前回の様子はコチラ↓ kdnakt.hatenablog.com [第21回の様子] [学んだことや疑問点] [まとめ]

Javaで利用できるCron式を集めてみた

cron-utilsというJavaのライブラリがあり、様々なスタイルでCron式を定義することができる。 Quarkusのschedulerエクステンションで利用されていたので、それぞれのスタイルの特徴をまとめてみた。 github.com [Unixスタイル] [cron4jスタイル] [quartsスタ…

PowerMockitoでテスト中にjava.lang.IllegalStateException: Reason: [source error] に遭遇した

Javaでテストを書いていて、System.currentTimeMillis()というおなじみのメソッドをモックしようとしたら例外が出たのでメモしておく。 [前提条件] [発生した問題] [修正方法] [まとめ]

2019年の振り返りと2020年の抱負

2010年代が終わった。就職して、家族ができて、色々あった10年だった。 それはともかく、1月中に2019年の振り返りを済ませておく。 [2019年の振り返り] [2020年の抱負] [まとめ]

QuarkusのMailerエクステンションを利用してメール送信機能を実装する

2019年末にQuarkusと和解し、ようやくAWS Lambda上からネイティブコンパイルしたJavaアプリでDBのデータを取得できるようになった。 その後は公式サイトのガイドを参考に、カバレッジの取得方法とか、設定ファイルの使い方とかを学んでいる。 quarkus.io 今…

【完結編】QuarkusでネイティブコンパイルしてLambdaとDynamoDBを連携する

2019年3月のQuarkus公開から、AWS Lambda上でQuarkusでネイティブコンパイルしたJavaアプリを動作させるべく戦いを繰り広げていた。今回ようやくDynamoDBとの連携を実装することができた。 [これまでの戦いの歴史] [vert.xのエラー] [HTTPS通信の罠] [Java 8…

QuarkusでAWS LambdaとAmazon DynamoDBを連携する

この記事はAWS LambdaとServerless #1 Advent Calendar 2019の15日目の記事です。 qiita.com [やること] [QuarkusでDynamoDBを利用する] [DynamoDBクライアントとネイティブコンパイル] [Lambda: Java 8ランタイム] [Lambda: カスタムランタイム] [まとめ]

JavaでジェネリクスのClass(型パラメータ)を取得する

先日のJacksonの件の続き。ジェネリクスを利用している場合に型情報が上手く取得できずに悩んだのでメモしておく。 kdnakt.hatenablog.com [やりたいこと] [コンストラクタでClass型を渡す] [Class#getGenericSuperclass()を利用する] [Spring Frameworkを利…

JavaでJacksonを利用してJSON文字列をコレクション型オブジェクトに変換する

JavaでJSONデータ変換をするときに使うJacksonというライブラリのAPIをちゃんと調べたら、ちゃんといい感じの使い方があったのを見つけたのでメモ。 [Jacksonとは] [文字列をオブジェクトに変換する] [コレクション型のオブジェクトに変換する] [まとめ]

PowerShellでmavenコマンド実行時にシステムプロパティが認識されない

spring.io Spring Frameworkを利用したアプリケーションを開発している(正確にはSpring Bootだ)。諸事情により、開発にはEclipseベースのSpring Tool Suite 3を利用していたが、公式サイトではVS Codeにも対応したSpring Tools 4が案内されて久しい。JavaS…

maven-download-pluginでjava.io.StreamCorruptedException: invalid stream header: 00000000が出たときの対処法

とりあえず使ってたmaven-download-pluginが1.2.0と古かったので、1.4.0にバージョンアップしたら直った。 詳細な発生条件や原因はちゃんと調べられていないが、覚書としてメモしておく。 [前提条件] [問題の詳細] [解決策] [まとめ]

Amazon DynamoDBとDynamoDB LocalのBillingModeに関するAPI仕様差分

既存コードで利用するAWS SDK for Javaのバージョンを適当に最新版にしたときに、DynamoDB Localと本物のAmazon DynamoDBのAPIの動作が違っていたせいでバグチケットを起票される羽目になった話。 [DynamoDB Localとは] [DynamoDB Localの注意事項] [DynamoD…

#Quarkus で作成したJavaアプリをAWS Lambda で動かそうとして失敗した

【2019/11/12追記】 1.0.0.CR1で動作確認できました。🎉 kdnakt.hatenablog.com 【追記ここまで】 どうやら2019年3月19日現在は、Quarkus(v0.11.0)で生成されたバイナリをAWS Lambda上で動かすことはできないらしい。 以下の記事の続きです。 kdnakt.hatenab…

JavaアプリをNativeコンパイルして爆速で起動するQuarkusを試してたら利用例にプルリクエストがマージされた

Javaの起動が速くなる素敵な話。 こちらのブログで知って色々試してみた。 yoshio3.com [Quarkusフレームワークとは] [やりたいこと=Quakus+AWS Lambda] [プルリクエスト2件が爆速でマージされた] [まとめ]

DynamoDB Localの軽量Dockerイメージを自作した話とか

先日AWSのニュースサイトでDynamoDB Localの公式Dockerイメージが公開されていた。 新しいドッカーイメージで Amazon DynamoDB ローカルをさらに容易に 試しにdocker pullしてみたら、イメージのサイズが思ったより大きかったので、より軽量なイメージを作成…

TLS1.2とMavenと時々Jenkinsの話とか

PCI DSSの基準によりTLS v1/v1.1が安全でない通信とされてから早1ヶ月以上が経った。 www.jcdsc.org 自分たちの運用するサイトもサクッとTLS1.2対応を済ませ、利用者の皆様には多少ご不便をおかけします、なんて思っていたら、自分が「ご不便」を被る羽目に…

Spring BootでHTTPS接続するためにSSLサーバ証明書と秘密鍵をJavaのキーストアにインポートした話とか

もともと、ローカルでのHTTPS接続関連の開発やテストはオレオレ証明書で済ませていた。 けれど、社内の認証局から発行された証明書を使う場合に失敗したので、その辺の話を。きっとまた同じ失敗を繰り返すので、自分のためにまとめておく。 [SSLサーバ証明書…

#Udacity でC++ For Programmersコースを修了した話とか

始まりの終わり。 この記事の続きです。 kdnakt.hatenablog.com

Spring BootでHttpServletRequestをAutowireしようとしてサーバが起動しなくなった話とか

Spring BootでWebアプリケーションを開発していてちょっとハマってしまった。 覚書がてら書いておく。 Javaの基本とかSpringの基本とかにはあまり細かく触れない。 [やりたかったこと:HttpServletRequestをAutowireする] [Springの基本:BeanはSingleton] […

DynamoDB Localの最新版(2018-04-11)が公開されていた話とか

dynamodb_local_2017-02-16のバージョン以降、色々と本家クラウド版の機能追加がされているにも関わらず長らく正式版が公開されていなかったDynamoDB Localの最新版が公開されていたのでまとめてみる。