如何使用vertx-mongo客户端执行find( id : { $in : [ list ] } )
vertx mongo客户端期望查询参数是JSON对象.到目前为止,我做了类似于 的事情 JsonObject queryParam = new JsonObject().put("id", 123); mongoClient.find("collection", queryParam, asyncResult -> { if (asyncResult.succeeded()) { // Do something promise.complete(); } else { promise.fail(asyncResult.cause()); } }); 我会根据我的需要构建上述查询参数. 现在,我有一项服务,可以返回我的ID列表.我必须对这些匹配的ID查询该集合.理想情况下,在mongo shell中我会做db.getCollection("collection").find( id: { $in: [1
4 2024-03-26
编程技术问答社区
在Vert.x中获取警告为Nosuchalgorithmexception
我使用vert.x Framework中的access incesce来实现了通过携带者身份验证对KeyCloak的UserInfo端点进行保护的后端呼叫.我可以在没有任何错误的情况下运行此代码. 但是我得到了此警告: > May 16, 2022 10:33:04 AM io.vertx.ext.auth.oauth2.impl.OAuth2AuthProviderImpl WARNING: Skipped > unsupported JWK: java.security.NoSuchAlgorithmException: RSA-OAEP 以下是代码: > OAuth2ClientOptions clientOptions = new OAuth2ClientOptions() > .setFlow(OAuth2FlowType.AUTH_CODE) > .setSite(System.getProper
10 2024-03-20
编程技术问答社区
异步完成任务,但先回复
这是我第一次尝试与Java进行异步程序. 我的要求是,每当我收到请求时,我都必须启动可能需要一个小时的任务.因此,我立即向用户回答任务完成之前的"任务已经启动".我有趣的是Apache Timcat版本8.5.23. 我以为AsyncContext.start()会帮助我,但是我发现asynccontext不会返回对客户的响应,直到它调用onComplete(AsyncEvent event). . 有没有办法在发生onComplete(AsyncEvent event)之前对用户响应? 我确实看到了一个类似的问题如何在响应后如何在响应中执行代码. javaee . 我听说预先感谢. 解决方案 而不是使用AsyncContext.start(Runnable),我使用CompletableFuture.runAsync(Runnable),并且按预期工作.
12 2024-03-18
编程技术问答社区
vertx处理程序如何工作?
在上周,我阅读了有关VERTX的文档.我不明白的是VERTX处理程序的工作方式?例如 public class Client extends AbstractVerticle{ @Override public void start() throws Exception { final HttpClient httpClient = this.vertx.createHttpClient(); this.vertx.setPeriodic(1000, handler->{ httpClient.getNow(8080, "localhost", "/", responseHandler -> { System.out.println("response"); }); }); } } 和服务器是: public class Jd
8 2024-03-18
编程技术问答社区
Vertx JDBC如何在引擎盖下工作
我已经使用了VERTX 3个月,但是现在我想知道非阻止Vertx JDBC的工作方式,例如 private void selectEndedMatches(){ this.jdbcClient.getConnection(conn->{ if(conn.failed()){ log.error("Can't get Vertx connection",conn.cause()); } else{ final SQLConnection connection = conn.result(); connection.queryWithParams("select matchid from get5_stats_matches where matchid > ? and end_time is not null",new Json
22 2024-03-18
编程技术问答社区
vert.x事件总线能否取代对Kafka的需求?
我正在评估Vert.x框架,以查看我是否可以使用Spring Boot开发的微服务之间的基于Kafka的通信. 问题是: 我可以替换 带Vert.x事件总线和 的kafka 基于Vert.x的春季启动微服务 解决方案 要快速回答,我会说这取决于您的需求. 是的,EventBus可以是使用异步和非阻滞范式在微服务螺旋中处理本地交流的好方法. ,但在某些情况下您可能需要: 处理一些常见的企业模式,例如重播机制,消息的持久性,交易式阅读 能够按时间顺序处理某种信息 处理倍数之间的通信类型的微服务,这些微服务并非全部使用相同的框架/工具包甚至编程语言 处理可靠性,弹性和 当您的所有消费者/微服务/垂直丧生时,故障恢复 处理动态的水平可扩展性和监视您的消费者/微服务/叶击 能够与部署在多名和多区域中的单个集群一起工作 在这种情况下,我宁愿选择Apache Kafka而不是本机eventbus或旧的符合JMS的旧系统. 不得根据您的实际需
8 2024-02-28
编程技术问答社区
如何用Vert.x 2.x启用CORS?
我试图用AngularJS 1.4.5提出跨域请求. 但是无法取得成功.我已经配置了$ httpprovider .config(['$httpProvider', function($httpProvider) { $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; $httpProvider.defaults.headers.common['Accept']= "application/json, text/plain, */*"; $httpProvider.defaults.headers.put["Content-Type"] = "application/x-www-form-urlencoded;charset=utf-8";
16 2024-02-24
编程技术问答社区
如何用Quarkus的Vertx路由器将所有未找到的路由重定向到index.html?
我有一个Quarkus应用程序,该应用程序都包装了一个Angular Spa(捆绑在罐子中). Quarkus为前端提供了后端API路由.构建Quarkus应用程序时,Angular应用程序构建将复制到目标中的META-INF/resources路径. 我没有使用JAX-RS注册我的路线.相反,我直接在fun onRouterReady(@Observes router: Router)方法内的VERTX路由器上进行编程注册. 我希望将任何未被识别的路线(无论是VERTX注册的路线还是静态资源)重新定向到index.html,以便我的Angular应用程序可以从其所有路由中加载.不幸的是,我无法找到任何方法. 我不知道所有Quarkus路由如何运作.我怀疑Quarkus本身正在使用servlet(或Vertx)注册一些路线,因为index.html适当地将其提供在根上,但我的身份验证根可以防止加载而无需进行身份验证. 我尝试了通过搜索发现的各种东西,例如:
22 2024-02-21
编程技术问答社区
在angular2 webapp项目中使用sockjs-client/sockjs创建Websocket
我正在为前端使用Angular2 WebApp项目,而Vertex3用于后端. 使用sockjs-client我正在创建WebSocket(在客户端端),以在前端和后端之间创建一个通信渠道. 我已经使用npm安装了sockjs-client: npm安装sockjs-client 当我在loginservice.ts文件中导入sockjs-client时: import *作为sockjs-client'的sockjs'; export class LoginService { URL: string = 'http://localhost:8082/eventbus'; sock: SockJS; handlers = {}; private _opened: boolean = false; public open(): void { if (!this._opened) { this.sock = new SockJ
16 2024-02-20
编程技术问答社区
在vert.x应用中调用dynamodb时被阻止的线程
我正在使用vert.x,我正在尝试列出我的dynamoDB表.这是我构建DynamoDB客户端的方式. private static DynamoDbAsyncClient buildDynamoDBAsyncClient(final Vertx vertx) { return VertxSdkClient.withVertx(DynamoDbAsyncClient.builder(), vertx.getOrCreateContext()) .build(); } 这是我提出的请求 CompletableFuture response = client.listTables(ListTablesRequest.builder() .build()); // Map the response to another Complet
10 2024-01-24
编程技术问答社区
你能在一个vert.x上运行一个verticle的并发实例吗?这些实例是线程安全的吗?
我知道这个问题已经被问到了,但我认为它从来没有一个确切的答案. vert.x可以在单个Vert.x上运行同一Verticle的多个实例,这意味着单个Verticle可以在多个事件循环上运行吗?如果是这种情况,是否每个事件循环运行相同的处理程序实例或一个单独的实例,另一个单词是同一垂直线程安全的多个实例,没有共享任何状态,或者是否存在并发问题? 根据Vert.x文档 - 即使VERTX实例维护多个事件循环, 特定处理程序将永远不会同时执行,并且在大多数 案件(工人垂直除外)将始终被调用 使用完全相同的事件循环. 很难说出它们的含义. 我试图弄清楚演员模型和vert.x如何将并发和映射到线程进行比较.到目前为止,似乎Vert.x的工作就像是演员,其中垂直是一堆分配给单个线程的演员,唯一的区别是,在Vert.x中,一位代码可以同时运行其他地方(在同一Vert.x上)虽然可能是具有自己状态的单独实例,但与演员严格禁止,除非您将演员复制为单独的班级,否则是相同的.
4 2024-01-10
编程技术问答社区
使用VertX将消息从事件总线桥接到订阅的websocket客户端
我正在尝试使用WebSocket创建一个可以通过sockjs和websocket到达的发布符号模型(一方面适用于JavaScript客户端,另一方面适用于Java客户端. 目前,我可以使用Sockjs和JavaScript客户端订阅.但是,当尝试使用WebSocket在我的Java客户端接收消息时,我可以连接到WebSocket服务器,但不会从服务器接收任何消息. 我当前的客户端代码: public class WebsocketReceiverIntegrationTest { public static void main(String[] args) { System.out.println("Started demo WS client"); HttpClient client = Vertx.vertx().createHttpClient(); System.out.println("Will now
18 2023-12-02
编程技术问答社区
Vert.x websocket客户端-400错误请求
如何连接 cex.io websocket api 来自我的java verticles? 问题是,Vert.x并没有为我提供仅与WSuri 作为node.js do .我必须指定端口和主机并获得http 400不良请求例外. 使用node.js您做: var WebSocketClient = require('websocket').client; var client = new WebSocketClient(); client.connect("wss://ws.cex.io/ws/"); 使用Vert.x,您必须做 int host = 443; // That's defaults String host = "cex.io"; // Am I right by specifying this host? HttpClient client = Vertx.vertx().createHttpClient(); client.websocket(
10 2023-12-02
编程技术问答社区
如何使用Vert.x 3通过websocket管理连接的用户?
要说服某些人从旧学校的技术中切换出来,我需要构建一个使用 java 管理超过10K并发连接的聊天演示应用程序(例如 node.js 东西). 我已经测试了 netty 5.0,这很棒,但需要做很多工作;另一方面,码头 9.3很棒,但与其他竞争对手相比很慢. 搜索后,我找到了基于 netty 的 vert.x 3工具包在Git中看到了示例,我能够构建WebSocket服务器等. public void start() throws Exception { vertx.createHttpServer().websocketHandler(new Handler() { @Override public void handle(ServerWebSocket e) { // business stuff in the old style not yet lambda
4 2023-12-02
编程技术问答社区
vert.x的概念有关网络服务器?
我不太了解网络服务器的vert.x. 我知道Web服务器的概念是基于线程的一个. 您启动您的Web服务器,然后运行. 然后,对于每个连接的客户端,您都会得到一个套接字,然后将其传递给其自己的线程处理程序. 然后,线程处理程序处理此特定套接字的任务. 因此,清楚地定义了哪个线程正在执行哪个套接字. 但是,对于每个插座,您都需要一个新线程,从长远来看,这对于许多插座很昂贵. 然后有一个基于事件的概念vert.x提供. 到目前为止,我已经理解,它应该像这样起作用: vertx实例部署垂直. 垂直在背景线程中运行,但并非每个垂直都有自己的线程.例如 然后有事件循环.我不确定他们如何指向垂直.我读过,每个垂直都有2个事件循环,但真的不知道它是如何工作的. 作为网络服务器示例: class WebServer: AbstractVerticle() { lateinit var server: HttpServer override
10 2023-12-02
编程技术问答社区
如何在Vert.x中运行多个顶点?
我是Vert.x的新手,我想通过jar运行多个垂直.我有两个文件,一个是myfirstvertice.java,它路由路径"/q1/"并返回某物.第二个是MySecondvertice.java,它路由路径"/q2/".第二个Vertice部署在第一个Vertice中. myfirstvertice.java public class MyFirstVerticle extends AbstractVerticle { @Override public void start(Future fut) throws Exception { HttpServer server = vertx.createHttpServer(); Router router = Router.router(vertx); router.route("/q1/*").handler(routingContext -> { HttpServerRe
32 2023-11-29
编程技术问答社区
在Vert.x(W/ES4X)上运行Vuetify
我想知道是否可以使用Vert.x进行Vuetify(开箱即用).我玩了一点,我看不到一种直接的方式,但也许我错过了一些东西. 来源: https://vuetifyjs.coms.com/en/getting-started/getting-started/quick-started/quick-start/quick-start/quick-start/quick-start 步骤: 创建一个开箱即用的Vuetify: npm install @vue/cli -g vue create my-app cd my-app vue add vuetify 测试它通过在节点中运行 来工作是否有效 npm run start 当我查看 http://localhost:8080 (使用节点)看起来不错.所以我 在Dist文件夹中创建编译版本 npm run build 现在我想尝试在vert.x中使用它,因此我添加了ES4X,它
28 2023-11-26
编程技术问答社区
垂直。x被动卡夫卡客户端:写作时链接不起作用?
我正在使用io.vertx.reactivex.kafka.client.producer.KafkaProducer客户端.客户有一个 rxWrite返回Single的函数.但是,在写操作期间,我需要记录错误.显然没有被执行. 我写了以下工作示例. test():函数测试链接和记录 fun test(): Single { val data = Single.just(ArrayList().apply { add("Hello") add("World") }) data.flattenAsObservable { list -> list } .flatMap { advertiser -> //does not work with writeKafka writeErro
20 2023-11-18
编程技术问答社区
如何正确处理VertX的MongoClient中的异常情况
在我的应用程序的启动方法中,我想检查提供给应用程序的MongoDB的凭据是否可以.如果可以的话,我将继续这家启动,如果不是,则该应用程序应该退出,因为它无法连接到DB.代码段如下: // Create the client MongoClient mongodb = null; try { mongodb = MongoClient.createShared(vertx, mongo_cnf, mongo_cnf.getString("pool_name")); } catch(Exception e) { log.error("Unable to create MongoDB client. Cause: '{}'. Bailing out", e.getMessage()); System.exit(-1); } 如果我提供了错误的凭据,则不会调用catch块.但是我在控制台上得到以下内容: 19:35:
34 2023-11-18
编程技术问答社区
用于在Vert.x中使用正确的杂种的模式
我对MongoClient课程感到非常不舒服,当然是因为我不完全了解它是什么以及它的工作方式. 第一个呼叫MongoClient.createShared实际上将创建 池,将使用指定的配置. 随后的调用将返回使用相同的新客户端实例 池,因此不使用配置. 这意味着模式应该是: 在启动函数中,要创建池,我们呼叫 mc = MongoClient.createShared(vx, config, "poolname"); 返回的值mc如果成功的话,对于第一个调用很重要?如果池的创建失败,它的价值是什么?文档没有说.如果mongod不运行,则存在插座异常,但是其他情况呢? 在代码中的另一个位置(例如,另一个垂直),我们可以编写mc = MongoClient.createShared(vx, new JsonObject(), "poolname");以避免系统地需要访问共享对象. 再次,在我们需要访问数据库的另一个垂直中,如果我们定义MongoCl
4 2023-11-18
编程技术问答社区