Get started | Eclipse Vert.x を試す。
前提
- OS: Windows 11 Pro
- Java: java version “1.8.0_201”
- 諸事情あって Java8 です…
プロジェクトのひな形を作成
- Vert.x Starter - Create new Eclipse Vert.x applications にアクセスし、作成するアプリケーションの情報を入力し、
Generate Project
ボタンを押下Version
:4.1.2
Language
:Java
Build
:Maven
Group Id
:dev.mikoto2000.study.vertex
Group Id
:firststep
Dependencies
:Vert.x Web
firststep.zip
がダウンロードされるので、任意の場所に展開- ソースとターゲットの変更
- ダウンロードしたひな形は
<release>11</release>
と指定されているが、今回は Java8 を使うため、source
とtarget
を指定する方法に修正する。以下コマンドを実行。sed -i -e "s/<release>11<\/release>/<source>1.8<\/source>\\n <target>1.8<\/target>/" ./pom.xml
- ダウンロードしたひな形は
とりあえずテストを実行してみる
- ひな形プロジェクト展開したディレクトリへ移動
- コマンド
./mvnw.cmd clean test
を実行
実行ログ
PS C:\Users\mikoto\project\MiscellaneousStudy\java\Vertx\firststep> ./mvnw clean test
[INFO] Scanning for projects...
[INFO]
[INFO] ---------------< dev.mikoto2000.study.vertex:firststep >----------------
[INFO] Building firststep 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ firststep ---
[INFO] Deleting C:\Users\mikoto\project\MiscellaneousStudy\java\Vertx\firststep\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ firststep ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\mikoto\project\MiscellaneousStudy\java\Vertx\firststep\src\main\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ firststep ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\mikoto\project\MiscellaneousStudy\java\Vertx\firststep\target\classes
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ firststep ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\mikoto\project\MiscellaneousStudy\java\Vertx\firststep\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ firststep ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\mikoto\project\MiscellaneousStudy\java\Vertx\firststep\target\test-classes
[INFO]
[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ firststep ---
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running dev.mikoto2000.study.vertex.firststep.TestMainVerticle
HTTP server started on port 8888
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.703 s - in dev.mikoto2000.study.vertex.firststep.TestMainVerticle
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.520 s
[INFO] Finished at: 2021-08-17T04:49:55+09:00
[INFO] ------------------------------------------------------------------------
ok.
ひな形のアプリケーション実行
- ひな形プロジェクト展開したディレクトリへ移動
- コマンド
./mvnw clean compile exec:java
を実行- コンソールログに
HTTP server started on port 8888
- コンソールログに
- ウェブブラウザで
http://localhost:8888
へアクセス- ウェブブラウザに
Hello from Vert.x!
と表示される
- ウェブブラウザに
ok.
アプリケーションを修正
package dev.mikoto2000.study.vertex.firststep;
import io.vertx.core.AbstractVerticle;
import io.vertx.core.MultiMap;
import io.vertx.core.Promise;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.web.Router;
public class MainVerticle extends AbstractVerticle {
@Override
public void start(Promise<Void> startPromise) throws Exception {
// ルーター作成
Router router = Router.router(vertx);
// 全パスにマッチするルートを作成し、そこにハンドラを割り当てる
// 全パスにマッチするルートなので、HTTP リクエストが来るたびにハンドラメソッドが実行される
router.route().handler(context -> {
// リクエスト送信元アドレスを取得
String address = context.request().connection().remoteAddress().toString();
// クエリーパラメーター `name` を取得
MultiMap queryParams = context.queryParams();
String name = queryParams.contains("name") ? queryParams.get("name") : "unknown";
// JSON レスポンスを生成して返却するよう設定
context.json(
new JsonObject()
.put("name", name)
.put("address", address)
.put("message", "Hello " + name + " connected from " + address)
);
});
// HTTP サーバーを生成
vertx.createHttpServer()
// 上で作成したルーターを設定
.requestHandler(router)
// 待ち受けポート設定
.listen(8888)
// 待ち受けポートを標準出力へ
.onSuccess(server ->
System.out.println(
"HTTP server started on port " + server.actualPort()
)
);
}
}
修正したアプリの動作確認
./mvnw clean compile exec:java
してからブラウザで localhost:8888?name=mikoto
に接続。
パラメーターが反映されているのが確認できる。
今回はここまで。
0 件のコメント:
コメントを投稿