Java 在使用Vertx部署我的已部署verticle后,如何获得对它的引用?

Java 在使用Vertx部署我的已部署verticle后,如何获得对它的引用?,java,vert.x,Java,Vert.x,我有一个名为TestService的服务,它扩展了AbstractVerticle: public class TestService extends AbstractVerticle { @Override public void start() throws Exception { //Do things } } 然后,我使用vertx部署垂直体,如下所示: Vertx vertx = Vertx.vertx(); vertx.deployVerticle(TestSe

我有一个名为
TestService
的服务,它扩展了
AbstractVerticle

public class TestService extends AbstractVerticle {
  @Override
  public void start() throws Exception {
    //Do things
  }
}
然后,我使用vertx部署垂直体,如下所示:

Vertx vertx = Vertx.vertx();
vertx.deployVerticle(TestService.class.getName());

vertx实例化我部署的TestService后,如何获取对它的引用?

您应该使用另一种部署方法:

vertx.deployVerticle(TestService.class.getName(), deployment -> {
  if (deployment.succeeded()) {
    // here is your ID
    String deploymentId = deployment.result();
  } else {
    // deployment failed...
  }
});
如果您只想列出所有已部署的垂直站点,则只需请求ID列表:

vertx.deploymentIDs()

我知道这个问题由来已久,但如果有人能举例说明如何做到这一点,可能会很有用

您经常会看到这样的部署示例
这是异步微服务框架,但是很容易获得引用,因为方法“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)}   }
}

部署垂直对象时,是否有方法获取对其本身的引用?比如:TestService ts=vertx.byId(“…”);