我正在关注Jenkov关于vertx 的教程.这里我有两个文件:
MyVerticle.java:
import io.vertx.core.AbstractVerticle;
import io.vertx.core.Future;
public class MyVerticle extends AbstractVerticle {
@Override
public void start(Future<Void> startFuture) {
System.out.println("MyVerticle started!");
}
@Override
public void stop(Future stopFuture) throws Exception {
System.out.println("MyVerticle stopped!");
}
}
Run Code Online (Sandbox Code Playgroud)
和VertxVerticleMain.java:
import io.vertx.core.Vertx;
public class VertxVerticleMain {
public static void main(String[] args) {
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(new MyVerticle());
}
}
Run Code Online (Sandbox Code Playgroud)
运行后VertxVerticleMain.java
,我看到了"MyVerticle started!"
在Eclipse的控制台,但不知道该怎么称呼stop
的MyVerticle
.
Jenkov说当Vert.x关闭并且您的Verticle需要停止时,会调用stop()方法.我究竟如何关闭Vert.x并停止此Verticle?我想MyVerticle stopped!
在控制台中看到.
如何从主方法启动Verx 3 Verticle?我已经想出如何从单元测试开始它,入门指南解释了如何构建一个胖罐.但是,我如何从主方法启动它以进行调试,分析等?
在vertx文档中,他们提到有可能限制每个vertx实例的事件循环线程数:
每个Vertx实例都维护多个事件循环,而不是单个事件循环.默认情况下,我们根据计算机上可用核心的数量选择数字,但这可以被覆盖.
也许有人知道该怎么做?(我需要它用于调试目的)
是否可以为路径添加2个处理程序?
我需要html
从文件夹加载内容并session
在访问/
路径时检查值.
如果我放置router.route().handler(StaticHandler.create().setWebRoot("webroot"));
它将从webroot
文件夹中读取内容.
当我使用以下代码时,它将执行hanlder代码.
router.route("/").handler(routingContext -> {
Session session = routingContext.session();
String name = session.get("uname");
// some code
});
Run Code Online (Sandbox Code Playgroud)
但是当我尝试访问此路径时,有没有办法执行两个处理程序?
我试过了
HttpServerResponse response = routingContext.response();
response.sendFile("webroot/index.html");
Run Code Online (Sandbox Code Playgroud)
但它只是读取index.html
文件,它不读取CSS.我找不到一个方法来读取整个目录.
我正在使用vertx3.我试过版本3.0.0 - 3.1.0 - 3.2.0-SNAPSHOT,并且所有这些都在发生.
为了简化问题,我创建了2个简单的Verticle.第一个充当消息的消费者,第二个通过事件总线发送消息.
问题是eventBus看起来不起作用,我在群集中运行时有超时.
我无法理解为什么看起来第二个节点加入集群等等.
我在这里添加代码.
public class FirstVerticle extends AbstractVerticle {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public void start() {
getVertx().eventBus().consumer("test-service", message -> {
log.info(String.format("test-Service receive: %s", message));
message.reply("ok");
}).completionHandler(event -> {
if(event.succeeded()) log.info("complete handler");
else log.info("failed");
});
log.info("Done initializing");
}
Run Code Online (Sandbox Code Playgroud)
}
public class SecondVerticle extends AbstractVerticle {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public void start() {
log.info("Done initializing test");
getVertx().setPeriodic(2000L, id -> {
log.info("sending message test");
getVertx().eventBus().send("test-service", "hi", response -> { …
Run Code Online (Sandbox Code Playgroud) Vertx和Spring都可用于构建整个REST应用程序,其中包括指标计算,JMX etx监控等许多功能.
a)Spring Boot和Vertx有什么区别?
b)我偶然发现了一篇文章:http://keaplogik.blogspot.in/2015/11/spring-boot-vertx-microservice-tech.html.
它描述了一个混合了vertx和Spring Boot的技术堆栈,但对两者都不熟悉,无法弄清楚所提到的链接中的用法.
我目前正在开发一个REST应用程序项目,所以我想在潜入之前选择正确的堆栈.提前感谢.
我正在使用vertx.io发出多个HTTP请求,该程序的输入是一个包含几个完整URL的文件。检查vertx.io HttpClient似乎只能查询主机,但不能查询完整URL。例如:它将成功查询http://www.yahoo.com/,但失败,例如:http : //finance.yahoo.com/news/us-stocks-slip-wal-mart-154834426.html
所以我的问题是:
谷歌搜索这些没有找到任何好的答案...
提前致谢!
我有一个包含一些文本字段和一些上传文件的多部分表单。我需要在 vertx 处理程序中处理这个多部分发布请求,以便所有上传的文件(变量编号)都应该分块读取(为了内存效率目的)。当我读取块(在 foreach 循环中)时,我想将其直接流式传输到文件中。对于带有文本字段的多部分,我只想将值存储到我的模型对象中。
我对 vertx 很陌生,因此正在寻找一个代码片段来实现这一点,但在 vertx 文档的任何地方都找不到它。
vertx3 ×8
vert.x ×6
java ×5
architecture ×1
eclipse ×1
hazelcast ×1
multipart ×1
rest ×1
spring-boot ×1