首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vertx停止方法没有在服务停止上执行

Vertx停止方法没有在服务停止上执行
EN

Stack Overflow用户
提问于 2020-11-19 06:41:41
回答 1查看 421关注 0票数 1

当我停止服务时,停止将不会被调用,但是如果在部署和取消部署ID垂直点的测试用例中同样尝试,停止方法将被执行。

编辑:-我正在创建jar文件(不是影子Jar)。下面是build.gradle配置

代码语言:javascript
运行
复制
application{
    mainClassName='io.vertx.core.Launcher'
}

def mainVerticleName = 'verticleName'

jar {
    manifest {
        attributes(
                "Manifest-Version": "1.0",
                "Main-Verticle": "$mainVerticleName",
                "Main-Class": "io.vertx.core.Launcher",
                "Class-Path": configurations.runtimeClasspath.collect { it.getName() }.join(' ')
        )
    }
}

开始申请:-

代码语言:javascript
运行
复制
java -jar api-gateway-1.0.0-SNAPSHOT.jar -Dconfig.propertyFile="<property file path>" -DlogfilePath="<log file path>"

停止申请:-

CTRL+C

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-10 14:07:57

创建CustomLauncher扩展启动程序类是有效的。

代码语言:javascript
运行
复制
@Log4j2
public class CustomLauncher extends Launcher {
   

    public static void main(String[] args) {
        new CustomLauncher().dispatch(args);
    }

    @Override
    public void beforeStoppingVertx(Vertx vertx) {
        log.info(" beforeStoppingVertx Called ===========");
       cleanUPBeforeStoppingVerx();
    }

    @Override
    public void afterStoppingVertx() {
        log.info(" afterStoppingVertx Called ===========");
    }

    @Override
    public void beforeDeployingVerticle(DeploymentOptions deploymentOptions) {
        log.info(" beforeDeployingVerticle Called ===========");
    }

    @Override
    public void beforeStartingVertx(VertxOptions options) {
        log.info(" beforeStartingVertx Called ===========");
    }

   
    @Override
    public void afterStartingVertx(Vertx vertx) {
        log.info(" afterStartingVertx Called ===========");
    }

    @Override
    public void handleDeployFailed(Vertx vertx, String mainVerticle, DeploymentOptions deploymentOptions,
                                   Throwable cause) {
        log.info("handleDeployFailed *****************");
        vertx.close();
    }
}

build.gradle变化:-

代码语言:javascript
运行
复制
jar {
    manifest {
        attributes(
                "Manifest-Version": "1.0",
                "Main-Verticle": "LauncherVerticle",
                "Main-Class": "CustomLauncher",
                "Class-Path": configurations.runtimeClasspath.collect { it.getName() }.join(' ')
        )
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64906604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档