Jersey+KotlinでAPIサーバーを構築する方法と、実装例をご紹介していこうと思います。
とりあえず第一回目としてJersey公式の雛形からProjectを作成し、Kotlin化するところまでを書きます。
基本的な導入の手順は公式の Chapter 1. Getting Started を参考に書いていきます。
Jerseyの雛形を作る
- mavenのインストール
- 任意のフォルダの配下で下記コマンドを実行する
mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-grizzly2 \ -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \ -DgroupId=com.example -DartifactId=simple-service -Dpackage=com.example \ -DarchetypeVersion=2.28
これを実行するとフォルダ内に下記構成のディレクトリが生成されます。
simple-service ├── pom.xml └── src ├── main │ └── java │ └── com │ └── example │ ├── Main.java │ └── MyResource.java └── test └── java └── com └── example └── MyResourceTest.java
Kotlin化する
Add gitignore · beatdjam/Jersey-On-Kotlin-Sample@8296a0f · GitHub
pomの記述変更
Convert Java file to Kolin · beatdjam/Jersey-On-Kotlin-Sample@a64a0d7 · GitHub
主にやっていることは
- dependenciesに下記を追記
- kotlin-stdlib-jdk8
- kotlin-test
- buildに下記を追記
- sourceDirectory
- testSourceDirectory
- pluginに下記を追記
- kotlin-maven-plugin
ファイルのKotlin化
下記構成になるようファイルをKotlin化する。
IntelliJの機能でJavaからKotlinに変換したあと、記述をKotlinっぽくしたりした。
あと、 HttpServer.stop()
がdeprecatedだったので HttpServer.shutdownNow()
に書き換えたりした。
simple-service ├── pom.xml └── src ├── main │ └── kotlin │ └── com │ └── example │ ├── Main.kt │ └── MyResource.kt └── test └── kotlin └── com └── example └── MyResourceTest.kt
Main.java → Main.kt
MyResource.java → MyResource.kt
MyResourceTest.java → MyResourceTest.kt
MyResourceTest.java
MyResourceTest.kt
サーバーの起動
Jerseyの雛形にはGrizzlyという軽量なHttpServerが付属していて、下記コマンドで起動できます。
mvn clean test;mvn exec:java;
無事起動できたら、このような表示がCLI上に表示されます。
Jersey app started with WADL available at http://localhost:8080/myapp/ application.wadl Hit enter to stop it...
http://localhost:8080/myapp/myresourceにアクセスして、 Got it!
と表示されれば完了です。
Grizzly上ではなく通常のJavaEEアプリケーションとして動かす場合
通常のJavaEEアプリケーションとしてプロジェクトを作成する場合は、
1.4. Creating a JavaEE Web Application を参考にしてください。
ここまでの作業
下記のタグまでが今回の記事の作業分です。
https://github.com/beatdjam/Jersey-On-Kotlin-Sample/tree/chapter1