File upload RoutingContext.vertx()在vertx';s BodyHandler(文件上载期间出现Nullpointerexception)
我的vertx实例运行良好,只要它响应标准json请求。一旦我尝试了文件上传(已经在其他vertx项目中使用过),我在vertx的BodyHandlerImpl中得到了一个NPE。有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.<
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);
// ...
}
}