java - 从 ws.url 获取空指针异常

标签 java spring-boot playframework get

@Inject
private WSClient ws;

@Override
public void getTerminalDetails(String terminalId, String institutionId) {

    String url = "http://localhost:8089/getDetails";
    WSRequest request = ws.url(url);
    CompletionStage<WSResponse>  wsResponse = request.get();
}

我收到以下错误:

Caused by: java.lang.NullPointerException: null at service.impl.TerminalDetailsServiceImpl.getTerminalDetails(TerminalDetailsServiceImpl.java:25)

第 25 行是:

WSRequest request = ws.url(url);

有人可以帮我解决我做错的事情吗?我是 Play 框架的新手,已经从 SpringBoot 迁移过来。

最佳答案

问题是我没有声明 VM4 所指出的注入(inject)结构

代码块应该是这样的:

public class DetailsServiceImpl implements DetailsService,WSBodyReadables {

private final WSClient ws;
private final Config config;

@Inject
public DetailsServiceImpl(WSClient ws, Config config) {
    this.ws = ws;
    this.config = config;
}


@Override
public GetDetailsResonse getDetails(String param1) {
    WSRequest request = ws.url("URL here").setRequestTimeout(Duration.of(5000, ChronoUnit.MILLIS));
    CompletionStage<JsonNode> response = request.get().thenApply(wsResponse -> wsResponse.getBody(json()));
    log.info(response.toString());
    GetDetailsResonse getDetailsResonse = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false).convertValue(response.toCompletableFuture().join(), GetDetailsResonse.class);
    return getDetailsResonse ;
}

关于java - 从 ws.url 获取空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61758373/

相关文章:

json - 获取案例类的具体类型

java - Apache Ignite SqlFieldsQuery 游标问题

java - Spring-Boot 如何正确注入(inject) javax.validation.Validator

spring-boot - 如何使用 Hibernate 或 JPA 存储库通过自然 ID 列表获取多个实体?

java - 带有 Play Framework 的 JPA 查询空值不起作用

java - Play Framework Cache Api 注入(inject)在单例中返回空指针异常

Java - 图像闪烁

java - 不显示表达式语言的值

java - 如果最后一个条件失败,如何重新启动 do-while 循环?

java - Android WebView 中的 WebRTC 使用 NextRTC Spring Signaling Server