public class SendCuteNamesAPI extends CacheAccessVerticle { public static final String CUTE_NAMES_ADDRESS = "cute-names"; private final Logger logger = Logger.getLogger(SendCuteNamesAPI.class.getName()); @Override protected void initSuccess(Future<Void> startFuture) { logger.info("Starting SendCuteNamesAPI"); Router router = Router.router(vertx); router.get("/").handler(rc -> { rc.response().putHeader("content-type", "text/html") .end("Welcome to Send Cute Names API Service"); }); SockJSHandler sockJSHandler = SockJSHandler.create(vertx); BridgeOptions options = new BridgeOptions(); options.addOutboundPermitted(new PermittedOptions().setAddress(CUTE_NAMES_ADDRESS)); sockJSHandler.bridge(options); router.route("/eventbus/*").handler(sockJSHandler); vertx.createHttpServer() .requestHandler(router::accept) .rxListen(config().getInteger("http.port", 8080)) .doOnSuccess(server -> logger.info("HTTP server started")) .doOnError(t -> logger.log(Level.SEVERE, "HTTP server failed to start", t)) .toCompletable() .subscribe(CompletableHelper.toObserver(startFuture)); } public static void main(String[] args) { Vertx vertx = Vertx.vertx(); DeploymentOptions options = new DeploymentOptions() .setConfig(new JsonObject() .put("http.port", 8082) .put("infinispan.host", "localhost") ); vertx.deployVerticle(SendCuteNamesAPI.class.getName(), options); } }