gpt4 book ai didi

java - 在play框架中调用webservice时出现NullPointer异常

转载 作者:行者123 更新时间:2023-12-02 04:20:04 24 4
gpt4 key购买 nike

这个程序有什么问题吗?

在版本 2.4.3 中调用 Play 框架中的 Web 服务时,我收到 nullPointerException

package com.enkindle.box;

import javax.inject.Inject;

import play.libs.ws.WSClient;

/**
* @author thirumal
*
*/
public class Sample {

@Inject WSClient ws;

public static void main(String[] args) {
Sample sample = new Sample();
sample.callAPI();
}

public void callAPI() {
ws.url("www.thomas-bayer.com/sqlrest/CUSTOMER/").get();
}

}

最佳答案

问题是您的 Sample 类在依赖项注入(inject)的上下文中不可用 - 我假设 Guice。有几种方法可以解决这个问题,但最简单的方法是使用 Guice 创建一个 Sample 接口(interface)并绑定(bind)其实现 SampleImpl ,以便它可用于注入(inject)的依赖项。我假设它是从 Controller 生成的,因此您可以将 Sample 注入(inject) Controller 并从那里点击 callApi() 方法。

Controller :

public class SampleController extends Controller {
@Inject Sample sample;

public Promise<Result> apiCall() {
sample.callApi();
return promise(() -> ok());
}
}

界面:

@ImplementedBy(SampleImpl.class)
public interface Sample {
public void callApi();
}

以及接口(interface)实现:

public class SampleImpl implements Sample {
@Inject WSClient ws;

@Override
public void callApi() {
// ws should not be null
ws.url("www.thomas-bayer.com/sqlrest/CUSTOMER/").get();
}
}

引用文档:https://www.playframework.com/documentation/2.4.x/JavaDependencyInjection#Binding-annotations

关于java - 在play框架中调用webservice时出现NullPointer异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32880830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com