当前位置: 首页 > 知识库问答 >
问题:

Vertx Java部署一个JavaScript verticle和将来的回调

孟胤
2023-03-14
    Vertx.clusteredVertx(vertxOptions, res ->
    {
        if (res.succeeded()) {
            logger.info("Cluster ready, starting verticle deploy");
            /*
             * React JS Server Deploy
             */
            Future< String > reactVerticleFuture = Future.future();

            vertx.executeBlocking(future ->
            {
                vertx.deployVerticle("dist/server.js", options, deployResult ->
                {
                    if (deployResult.succeeded()) {
                        future.complete();
                    } else {
                        future.fail(deployResult.cause());
                    }
                });

            } , reactVerticleFuture.completer());

             CompositeFuture.all(..., reactVerticleFuture).setHandler(ar ->
            {
               /*
                * deploy http listener and health endpoint
                */
            });
        } else {
            logger.error(res.cause().getMessage(), res.cause());
        }
    });
exports.vertxStartAsync = function(startFuture) {

console.log('vertxStartAsync')

var eb = vertx.eventBus()
var consumer = eb.consumer('httpGetWebChannel', function (message) {
})

consumer.completionHandler(function (res, res_err) {
    if (res_err == null) {
        console.log("The handler registration has reached all nodes");

        startFuture.complete()
    } else {
        console.log("Registration failed!");

        startFuture.fail()
    }
});
}

我怎么才能修好这个?

谢谢马塞尔

共有1个答案

卞嘉许
2023-03-14

好的,我们找到了解决方案(alexvetter-谢谢你的耐心)。

问题是,我用webpack构建Server.js文件,构建之后,exports块位于函数内部。

这是工作解决方案:

var WrapperPlugin = require('wrapper-webpack-plugin');

... 

plugins: [
        new WrapperPlugin({
            header: 'exports.vertxStartAsync = function(startFuture) {\n',
            footer: '}\n'
        }),
...
]
...
var eb = vertx.eventBus()
var consumer = eb.consumer('httpGetWebChannel', function (message) {
  ...
})

consumer.completionHandler(function (res, res_err) {
    if (res_err == null) {
        console.log("The handler registration has reached all nodes");

        startFuture.complete()
    } else {
        console.log("Registration failed!");

        startFuture.fail()
    }
});
 类似资料:
  • 问题内容: 我有NetBeans 6.8,我写了一个包含两个库(jar文件)的类。构建它,我得到一个带有我的project.jar的“ dist”文件夹和一个包含两个lib jar文件的“ lib”文件夹。 如何将所有这些保存在一个jar文件中?(我不使用Maven / Ant或类似的东西。) 问题答案: 基本的问题是,当前版本的Java不支持开箱即用的jar。 推荐的解决方案是使用jar内MAN

  • 我想知道一个尚未部署的portlet和将其放入Liferay的部署文件夹后的同一个portlet之间的主要区别是什么。使用meld实用程序,我发现部署的portlet版本有两个新文件:liferay插件包。xml和liferay web。xml。此外,liferay的显示也有所不同。xml,liferay portlet。xml,portlet。xml和web。xml。 Liferay的部署过程具

  • 我正在package.json中使用这段代码,我想部署到heroku应用程序中 “脚本”:{“构建”:“cd应用程序 我也尝试过: "start":"next start-p$PORT",我正在使用这个样板:https://github.com/MustansirZia/next-express-bootstrap-boilerplate 目前我得到这个。。。 test.herokuapp。com

  • 目前我们使用的是CCV2平台,我们能够部署商业。, 我们计划将一些本地开发的斯巴达克斯页面转移到CCv2。 请指导我们如何移动斯巴达克斯和商业代码基础,并执行构建和部署。

  • 问题内容: 我已经用训练了一个回归网络。我在训练和测试阶段都使用了图层。我已经绘制了这些图,结果看起来很有希望。 现在,我要部署模型并使用它。我知道如果使用了,最后一层必须在部署文件中。在什么情况下该怎么办? 问题答案: 对于部署,您只需要丢弃损失层(在您的情况下为该层)。网络的输出是您输入的损失层。 对于层(和),您需要 替换 损耗层,因为损耗层在其中包括一个额外的层(出于计算原因)。