2016-08-06 16 views
1

Ich habe ein Maven-Projekt, das einen CRUD-Webservice mit REST erstellt. Wenn ich diese verwenden:Implementierung einer Schnittstelle eines Webservice

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

Mein Code funktioniert gut. Aber ich möchte eine Interface-Implementierung verwenden, so dass ich tat dies:

private ICrud crud; 

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

Die Schnittstelle:

public interface ICrud { 
    public Fornecedor getAllFornecedores(); 
} 

Und die Umsetzung:

public class Crud implements ICrud{ 
    public Fornecedor getAllFornecedores(){ 
     Fornecedor fornecedor = new Fornecedor(); 
     fornecedor.setId(1); 
     fornecedor.setName("Bruno"); 
     fornecedor.setEmail("[email protected]"); 
     fornecedor.setComment("OK"); 

     return fornecedor; 
    } 
} 

Aber wenn ich das tue, ich habe der folgende Fehler:

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

Warum passiert das? Vielen Dank im Voraus

+0

hat icrud Instanz initiierte passieren? icrud = new Crud() und auch alle Ausnahme Protokoll posten –

+0

Ja das war es! Vielen Dank!! –

+0

froh zu helfen ... so werde ich als Antwort hier jemand auf der Suche nach dem gleichen Problem kann Hilfe sein –

Antwort

1

müssen Sie icrud Objekt erstellen

versuchen diese

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("[email protected]"); 
     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(); 
} 

} 
0

Danke mithat konuk. Die Auflösung hat die Schnittstelle mit der Implementierung instanziiert.