Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File upload RoutingContext.vertx()在vertx';s BodyHandler(文件上载期间出现Nullpointerexception)_File Upload_Nullpointerexception_Vert.x - Fatal编程技术网

File upload RoutingContext.vertx()在vertx';s BodyHandler(文件上载期间出现Nullpointerexception)

File upload RoutingContext.vertx()在vertx';s BodyHandler(文件上载期间出现Nullpointerexception),file-upload,nullpointerexception,vert.x,File Upload,Nullpointerexception,Vert.x,我的vertx实例运行良好,只要它响应标准json请求。一旦我尝试了文件上传(已经在其他vertx项目中使用过),我在vertx的BodyHandlerImpl中得到了一个NPE。有context.vertx()返回空值: SEVERE: Unexpected exception in route java.lang.NullPointerException at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.<

我的vertx实例运行良好,只要它响应标准json请求。一旦我尝试了文件上传(已经在其他vertx项目中使用过),我在vertx的BodyHandlerImpl中得到了一个NPE。有
context.vertx()
返回空值:

    SEVERE: Unexpected exception in route
java.lang.NullPointerException
    at io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler.<init>(BodyHandlerImpl.java:124)
    at io.vertx.ext.web.handler.impl.BodyHandlerImpl.handle(BodyHandlerImpl.java:65)
    at io.vertx.ext.web.handler.impl.BodyHandlerImpl.handle(BodyHandlerImpl.java:40)
    at io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:217)
    at io.vertx.ext.web.impl.RoutingContextImplBase.iterateNext(RoutingContextImplBase.java:78)
...
严重:路由中出现意外异常
java.lang.NullPointerException
位于io.vertx.ext.web.handler.impl.BodyHandlerImpl$BHandler。(BodyHandlerImpl.java:124)
位于io.vertx.ext.web.handler.impl.BodyHandlerImpl.handle(BodyHandlerImpl.java:65)
位于io.vertx.ext.web.handler.impl.BodyHandlerImpl.handle(BodyHandlerImpl.java:40)
位于io.vertx.ext.web.impl.RouteImpl.handleContext(RouteImpl.java:217)
在io.vertx.ext.web.impl.RoutingContextImplBase.IterateText(RoutingContextImplBase.java:78)
...

您可以克隆一个最小示例来重现此处的错误:

您的Vert.x Web
路由器不能是verticle类的最终成员:

public class MainApiVerticle extends AbstractVerticle {
  final Router router = Router.router(vertx); // vertx field is not set yet
  // ...
}
创建垂直体时,垂直体未部署,因此父类的
vertx
字段仍然为
null

如果需要将其作为字段,请在
start
方法中对其进行初始化:

public class MainApiVerticle extends AbstractVerticle {

    Router router;

    @Override
    public void start(Future<Void> startFuture) throws Exception {
        router = Router.router(vertx);
        // ...
    }
}
public类MainApiVerticle扩展了AbstractVerticle{
路由器;
@凌驾
public void start(Future startFuture)引发异常{
路由器=路由器。路由器(vertx);
// ...
}
}

您不能是verticle类的最终成员:

public class MainApiVerticle extends AbstractVerticle {
  final Router router = Router.router(vertx); // vertx field is not set yet
  // ...
}
创建垂直体时,垂直体未部署,因此父类的
vertx
字段仍然为
null

如果需要将其作为字段,请在
start
方法中对其进行初始化:

public class MainApiVerticle extends AbstractVerticle {

    Router router;

    @Override
    public void start(Future<Void> startFuture) throws Exception {
        router = Router.router(vertx);
        // ...
    }
}
public类MainApiVerticle扩展了AbstractVerticle{
路由器;
@凌驾
public void start(Future startFuture)引发异常{
路由器=路由器。路由器(vertx);
// ...
}
}