【问题标题】:Getting a NullPointerException from vertx从 vertx 获取 NullPointerException
【发布时间】:2020-10-13 15:45:34
【问题描述】:

我有一个在 k8 集群上运行的基于 vertx 的 java 微服务。安装新 pod 时,在初始化期间我会间歇性地收到此异常。将 vertx core 和 vertx web 版本从 3.5.3 升级到 3.9.3,但没有帮助。在出现这些异常后,该应用程序仍然可以正常运行。我想知道造成这种情况的根本原因。

这是在初始化期间发生的。这是我在初始化期间所做的事情

  1. 部署verticle A: vertx.deployVerticle(new Verticle_A(), serverOpts,this::deploymentHandler);

  2. 部署垂直B: vertx.deployVerticle(new Verticle_B(), serverOpts,this::deploymentHandler);

  3. 在我正在做的每个verticle中:

     httpServer = vertx.createHttpServer(serverOptions);
     httpServer.requestHandler(req -> {
         LOG.trace("Request hit the server " + req.absoluteURI());
     });
    
     httpServer.listen(Constants.PORT, (result) -> {
         if (result.succeeded()) {
             this.httpServer = result.result();
             LOG.info("Successfully started server on port: " + Constants.PORT);
         } else {
             LOG.error("Failed to start server: ", result.cause());
         }
     });
    

两个verticles部署成功,Http服务器启动

我是 vertx 和 k8s 的新手,因此我们将不胜感激。

SEVERE: Unhandled exception 
java.util.NoSuchElementException: handler 
at io.netty.channel.DefaultChannelPipeline.getContextOrDie(DefaultChannelPipeline.java:1073) 
at io.netty.channel.DefaultChannelPipeline.addBefore(DefaultChannelPipeline.java:248) 
at io.netty.channel.DefaultChannelPipeline.addBefore(DefaultChannelPipeline.java:237) 
at io.vertx.core.http.impl.HttpHandlers.initializeWebsocketExtensions(HttpHandlers.java:92) 
at io.vertx.core.http.impl.HttpHandlers.handle(HttpHandlers.java:69) 
at io.vertx.core.http.impl.HttpHandlers.handle(HttpHandlers.java:34) 
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:366) 
at io.vertx.core.impl.WorkerContext.lambda$wrapTask$0(WorkerContext.java:35) 
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76) 
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) 
at java.base/java.lang.Thread.run(Thread.java:830) 

Oct 12, 2020 11:43:28 PM io.vertx.core.impl.ContextImpl 
SEVERE: Unhandled exception 
java.lang.NullPointerException 
at io.vertx.core.http.impl.Http1xServerConnection.handleMessage(Http1xServerConnection.java:136) 
at io.vertx.core.impl.ContextImpl.executeTask(ContextImpl.java:366) 
at io.vertx.core.impl.WorkerContext.lambda$wrapTask$0(WorkerContext.java:35) 
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76) 
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) 
at java.base/java.lang.Thread.run(Thread.java:830)

【问题讨论】:

    标签: kubernetes nullpointerexception vert.x


    【解决方案1】:

    下次请尝试提供更多详细信息,但您似乎没有“处理程序”但您尝试使用它。我认为它也可能没有正确初始化。但是因为你没有提供源代码,所以我真的不知道。

    【讨论】:

    • 感谢您的评论。我添加了更多细节。让我知道这是否更好
    猜你喜欢
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多