Comment démarrer un simple serveur Vert.x depuis IntelliJ IDEA?
Ma build.gradle
est comme ci-dessous:
apply plugin: 'Java'
version = '3.0.0'
repositories {
mavenCentral()
}
dependencies {
compile 'io.vertx:vertx-core:3.0.0'
}
Mon serveur Vertx, MyVertex.Java
est comme ci-dessous:
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);
}
}
Et ma configuration d'exécution IntelliJ est comme ci-dessous, avec io.vertx.core.Starter
comme classe principale:
Mais lorsque je l'exécute avec ma configuration d'exécution, j'obtiens ce message d'erreur:
Error: Could not find or load main class run
L'option VM (dans la configuration Exécuter) run
est-elle quelque chose que je dois installer et ajouter à mon chemin d'accès ou comment démarrer avec le développement Vert.x-server?
J'utilise vertx 3.2.1 et il se plaint de io.vertx.core.Starter
. C'est obsolète maintenant. Donc, il faut utiliser io.vertx.core.Launcher
.
Voici un exemple de lancement via intellij avec la possibilité de spécifier un fichier de configuration JSON:
io.vertx.core.Launcher
<up to you, or leave blank>
run com.app.verticle.MyVerticle -conf /path/to/my_config.json
Lorsque vous utilisez un cadre de journalisation, il sera ajouté dans VM Options comme ci-dessous.
Log4j avec delgate log4j ou slf4j:
-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
Ajoutez simplement ceci à votre MyVerticle
(ou à une classe séparée):
import io.vertx.core.Launcher;
...
public static void main(final String[] args) {
Launcher.executeCommand("run", MyVerticle.class.getName());
}
Alors simplement Ctrl+Shift+F10
pour l'exécuter et IntelliJ créera automatiquement le Run Configuration
.
Ah, mon erreur:
run com.example.MyVerticle
doit être la valeur de Arguments du programme: et non pas comme Options VM dans IntelliJ IDEA Exécuter la configuration.
Vous pouvez simplement ajouter un main et utiliser deployVerticle () puis à partir de là dans IntelliJ, vous pouvez l'exécuter ou le déboguer facilement. Avec deployVerticle, vous pouvez passer une nouvelle instance de votre verticle principal/bootstrap ou vous pouvez passer yourMainVerticle.class
public class VertxVerticleMain {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new MyVerticle());
//vertx.deployVerticle(MyVerticle.class);
}
}
Vous devez utiliser ceci: org.vertx.Java.platform.impl.cli.Starter
comme classe principale dans IntelliJ IDEA; et si vous utilisez des arguments et des choses comme ça, vous voudrez peut-être utiliser quelque chose comme: runmod <groupId>~<artifactId>~<version> [-conf src/main/resources/your_config.json -cp]
Jetez un oeil à ce projet .
Pour Vert.x 3.0.0, vous devez utiliser ceci: io.vertx.core.Starter
comme classe principale et run com.example.other.AnyVerticle
comme arguments de votre programme.