How to start Vert.x server from IntelliJ IDEA?

Jonas picture Jonas · Aug 25, 2015 · Viewed 23.3k times · Source

How do I start a simple Vert.x server from inside IntelliJ IDEA?

My build.gradle is as below:

apply plugin: 'java'

version = '3.0.0'

repositories {
    mavenCentral()
}

dependencies {
    compile 'io.vertx:vertx-core:3.0.0'
}

My Vertx-server, MyVertex.java is as below:

package com.example;

import io.vertx.core.AbstractVerticle;
import io.vertx.core.Future;

public class MyVerticle extends AbstractVerticle {

    @Override
    public void start(Future<Void> fut) {
        vertx.createHttpServer()
                .requestHandler(r -> r.response().end("<h1>Hello</h1>"))
                .listen(8081);
    }
}

And my IntelliJ run configuration is as below, with io.vertx.core.Starteras main class: enter image description here

But when I run it with my run configuration I get this error message:

Error: Could not find or load main class run

Is the VM option (in Run configuration) run something I need to install and add to my path or how do I get started with Vert.x-server development?

Answer

corindiano picture corindiano · Mar 28, 2016

I'm using vertx 3.2.1 and it's complaining about io.vertx.core.Starter. It's deprecated now. So, one should use io.vertx.core.Launcher.

This is an example of launching via intellij with the option of specifying a config JSON file:

  • Main Class: io.vertx.core.Launcher
  • VM Options: <up to you, or leave blank>
  • Program Arguments: run com.app.verticle.MyVerticle -conf /path/to/my_config.json

When using a logging framework it will be added in VM Options as below.

Log4j with either log4j or slf4j delgate:

-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.Log4jLogDelegateFactory -Dlog4j.configuration=log4j.xml

-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory -Dlog4j.configuration=log4j.xml

Logback:

-Dvertx.logger-delegate-factory-class-name=io.vertx.core.logging.SLF4JLogDelegateFactory -Dlogback.configurationFile=logback.xml