我有一个使用REST创建CRUD Web服务的maven项目。 如果我用这个:
@GET
@Path("/getallfornecedores")
@Produces("application/json;")
public Fornecedor getAllFornecedores(){
Fornecedor f = new Fornecedor();
f.setName("Bruno");
return f;
}
我的代码运行正常。但是我想使用接口实现,所以我这样做了:
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
为什么会这样?提前致谢
答案 0 :(得分:1)
你需要创建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();
}
}
答案 1 :(得分:0)
谢谢mithat konuk。该解决方案实例化了与实现的接口。