Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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
Java 返回OperationResponse()时WebService vert.x中的NPE_Java_Vert.x - Fatal编程技术网

Java 返回OperationResponse()时WebService vert.x中的NPE

Java 返回OperationResponse()时WebService vert.x中的NPE,java,vert.x,Java,Vert.x,我已经采取了,并试图适应它的Mongo为基础的后端。代码看起来几乎相同,只是我添加了将Transaction.class复制/重命名为User.class以及服务实现和web处理程序 我试图从URL/users/username获取用户json。Mongo正确地检索它 我的问题是:我有两段代码,一段正在返回用户json,另一段没有抛出NPE 它编译的代码不起作用,我无法理解为什么不起作用: @Override public void getUser( String username,

我已经采取了,并试图适应它的Mongo为基础的后端。代码看起来几乎相同,只是我添加了将Transaction.class复制/重命名为User.class以及服务实现和web处理程序

我试图从URL/users/username获取用户json。Mongo正确地检索它

我的问题是:我有两段代码,一段正在返回用户json,另一段没有抛出NPE

它编译的代码不起作用,我无法理解为什么不起作用:

@Override
  public void getUser(
    String username,
    OperationRequest context, Handler<AsyncResult<OperationResponse>> resultHandler) {
      resultHandler.handle(
        persistence.getUser(username)
          .compose(user -> {
            if (user.isPresent()) {
              System.err.println("D: " + user.get());
              return Future.succeededFuture(OperationResponse.completedWithJson(user.get()));
            } else  {
              return Future.succeededFuture(new OperationResponse().setStatusCode(404).setStatusMessage("Not Found"));
            }
          })
      );
  }

有人会认为,将Future.succeedFuture返回resultandler.handle是正确的方法吗?但它会抛出NPE

我使用此getUser持久性方法使其工作:

  @Override
  public Future<JsonObject> getUser(String username) {
    Promise<JsonObject> promise = Promise.promise();
    MongoClient mongoClient = MongoClient.createShared(vertx, mongoconfig);
    JsonObject query = new JsonObject().put("username", username);
    mongoClient.findOne(collectionName, query, null, promise::handle);
    return promise.future();
  }
此服务处理程序:

  @Override
  public void getUser(
    String username,
    OperationRequest context, Handler<AsyncResult<OperationResponse>> resultHandler) {
      persistence.getUser(username)
        .onSuccess(jsonObject -> {
          resultHandler.handle(Future.succeededFuture(OperationResponse.completedWithJson(jsonObject)));
        });
  }

伟大的代码伴随着伟大的责任感。。。一旦理解了,你就必须热爱未来:

我用这个getUser持久性方法实现了它:

  @Override
  public Future<JsonObject> getUser(String username) {
    Promise<JsonObject> promise = Promise.promise();
    MongoClient mongoClient = MongoClient.createShared(vertx, mongoconfig);
    JsonObject query = new JsonObject().put("username", username);
    mongoClient.findOne(collectionName, query, null, promise::handle);
    return promise.future();
  }
此服务处理程序:

  @Override
  public void getUser(
    String username,
    OperationRequest context, Handler<AsyncResult<OperationResponse>> resultHandler) {
      persistence.getUser(username)
        .onSuccess(jsonObject -> {
          resultHandler.handle(Future.succeededFuture(OperationResponse.completedWithJson(jsonObject)));
        });
  }

伟大的代码伴随着伟大的责任感。。。一旦理解了,你就必须热爱未来:

这个答案中的服务处理程序代码在语义上与问题中的代码不同,因为你没有将故障传播回去。这就是您要寻找的?此答案中的服务处理程序代码在语义上与问题中的代码不同,您不将故障传播回去。那就是你要找的?