我有一个名为AbstractVerticle
的服务,它扩展了public class TestService extends AbstractVerticle {
@Override
public void start() throws Exception {
//Do things
}
}
:
Vertx vertx = Vertx.vertx();
vertx.deployVerticle(TestService.class.getName());
然后我用这样的vertx部署那个verticle:
use Xclip;
Xclip::copy2("some stuff");
如何在vertx实例化之后获得对部署的TestService的引用?
答案 0 :(得分:8)
您应该使用替代方法进行部署:
vertx.deployVerticle(TestService.class.getName(), deployment -> {
if (deployment.succeeded()) {
// here is your ID
String deploymentId = deployment.result();
} else {
// deployment failed...
}
});
如果您只想列出所有部署的Verticle,那么您只需要请求id列表:
vertx.deploymentIDs()
答案 1 :(得分:2)
我知道这个问题很旧,但是对于某人来说如何做一个例子可能很有用。
您经常会看到像from vertx-examples这样的部署示例
这是异步微服务框架,但是它很容易获得引用,因为方法'deployVerticle'(请参阅链接中的第29行)将采用一个实例,如下面的简单示例所示,您可以在如图所示回呼。
在Kotlin中的示例可以轻松地翻译成java
MyVert: io.vertx.core.AbstractVerticle() {
override fun start() {
// init
}
fun someFunction() {
}
}
fun main() {
val vertx = Vertx.vertx()
val myVert = MyVert()
vertx.deployVerticle(myVert) {
if(it.succeeded() ) {
myVert.someFunction()
}
else { println(it.cause().localizedMessage)} }
}