状況:IDEを更新し(Eclipse IDE 2020-6から2020-9)、Webサービスへのリクエストが次のエラーで機能しなくなりました。
sep. 19, 2020 7:09:23 A. M. io.vertx.core.impl.ContextImpl
SEVERE: Unhandled exception
java.lang.NullPointerException
at model.Concepto.<init>(Concepto.java:23)
at consumer.ConceptoAccess.lambda$getConceptos$0(ConceptoAccess.java:31)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at consumer.ConceptoAccess.lambda$getConceptos$1(ConceptoAccess.java:28)
at io.vertx.ext.web.client.impl.HttpContext.handleDispatchResponse(HttpContext.java:313)
at io.vertx.ext.web.client.impl.HttpContext.execute(HttpContext.java:300)
at io.vertx.ext.web.client.impl.HttpContext.next(HttpContext.java:275)
at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:69)
at io.vertx.ext.web.client.impl.predicate.PredicateInterceptor.handle(PredicateInterceptor.java:32)
これは、「model」パッケージのConcepto.javaの23行目です。
package model;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
public class Concepto {
private IntegerProperty idconcepto;
private StringProperty descripcion;
public Concepto() {
// idconcepto = new SimpleIntegerProperty();
descripcion = new SimpleStringProperty();
}
public Concepto(Integer idconcepto, String descripcion) {
// this.idconcepto.set(idconcepto);
this.descripcion.set(descripcion);
}
public Concepto(String descripcion) {
this.descripcion.set(descripcion); //<----- Line 23
}
public StringProperty getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion.set(descripcion);
}
public IntegerProperty getIdconcepto() {
return idconcepto;
}
}
これは、「consumer」パッケージのConceptoAccess.javaの31行目です。
public class ConceptoAccess {
private static final String HOST = "192.168.0.15";
private static final int PORT = 8091;
public static void getConceptos(ObservableList<Concepto> conceptoData) {
WebClient client = WebClient.create(Vertx.vertx());
client
.get(PORT, HOST, "/api/conceptos")
.send(ar -> {
if (ar.succeeded()) {
conceptoData.clear();
HttpResponse<Buffer> response = ar.result();
response.bodyAsJsonArray().forEach(concepto -> {
JsonObject jo = (JsonObject) concepto;
conceptoData.add(new Concepto(jo.getString("descripcion"))); <---Line 31
});
System.out.println("Received response with status code " + response.statusCode());
System.out.println(response.bodyAsJsonArray());
} else {
System.out.println("Something went wrong " + ar.cause().getMessage());
}
});
}
私はWebサービスをテストして問題なく動作しました:Postmanでテストしました
どうしましたか?Eclipseの更新前は、すべてが正常に機能していました。私はopenJDK 11 + JavaFX 14 + Vert.x 3.9.3を使用しています
TIAは助けてくれます!
または単に上に移動します
private final StringProperty descripcion = new SimpleStringProperty();
そしてそれを最終的なものにします。この初期化子の他のすべての発生を削除します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加