gpt4 book ai didi

java - 实现Web服务的接口(interface)

转载 作者:行者123 更新时间:2023-11-30 07:13:22 24 4
gpt4 key购买 nike

我有一个 Maven 项目,它使用 REST 创建 CRUD Web 服务。如果我使用这个:

@GET
@Path("/getallfornecedores")
@Produces("application/json;")
public Fornecedor getAllFornecedores(){
Fornecedor f = new Fornecedor();
f.setName("Bruno");
return f;
}

我的代码运行良好。但我想使用接口(interface)实现,所以我这样做了:

private ICrud crud;

@GET
@Path("/getallfornecedores")
@Produces("application/json;")
public Fornecedor getAllFornecedores(){
return crud.getAllFornecedores();
}

界面:

public interface ICrud {
public Fornecedor getAllFornecedores();
}

以及实现:

public class Crud implements ICrud{ 
public Fornecedor getAllFornecedores(){
Fornecedor fornecedor = new Fornecedor();
fornecedor.setId(1);
fornecedor.setName("Bruno");
fornecedor.setEmail("bruno.camargo_@outlook.com");
fornecedor.setComment("OK");

return fornecedor;
}
}

但是当我这样做时,出现以下错误:

  The RuntimeException could not be mapped to a response, re-throwing to the HTTP container
java.lang.NullPointerException

为什么会发生这种情况?提前致谢

最佳答案

您需要创建 icrud 对象才能传递

试试这个

public interface ICrud {
public Fornecedor getAllFornecedores();
}

public class Crud implements ICrud{
public Fornecedor getAllFornecedores(){
Fornecedor fornecedor = new Fornecedor();
fornecedor.setId(1);
fornecedor.setName("Bruno");
fornecedor.setEmail("bruno.camargo_@outlook.com");
fornecedor.setComment("OK");

return fornecedor;
}
}

public class Controller {


private ICrud crud = new Crud();


@GET
@Path("/getallfornecedores")
@Produces("application/json;")
public Fornecedor getAllFornecedores(){
return crud.getAllFornecedores();
}

}

关于java - 实现Web服务的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38806327/

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