2017-11-08 35 views
0

Ich verwende Spring-Boot, JSF und MyBatis. Das Problem ist, dass ich eine NullPointerException bekomme, wenn ich versuche, MyBatis Mapper zu verwenden. Die MyBatis-Verbindung funktioniert einwandfrei, ich habe es bei meinen Unit-Tests mit Autowired getestet (genauso wie ich es in der Service-Klasse mache).NullPointerException bei Verwendung von Autowired in JSF

Das ist mein JSF-Controller:

@ManagedBean 
@ViewScoped 
public class WeatherView implements Serializable { 

    private List<Weather> weathers; 

    @ManagedProperty(value = WeatherService.EL_NAME) 
    private WeatherService weatherService; 

    @PostConstruct 
    public void init(){ 
     setWeathers(this.weatherService.getAll()); 
    } 

    public List<Weather> getWeathers() { 
     return this.weathers; 
    } 

    public void setWeathers(List<Weather> weathers) { 
     this.weathers = weathers; 
    } 

    public void setWeatherService(WeatherService weatherService) { 
     this.weatherService = weatherService; 
    } 

WeatherService.java

@Service(WeatherService.BEAN_NAME) 
@ManagedBean(name = WeatherService.BEAN_NAME) 
@ApplicationScoped 
public class WeatherService { 

    public static final String BEAN_NAME = "weatherService"; 

    public static final String EL_NAME = "#{weatherService}"; 

    @Autowired 
    private WeatherMapper weatherMapper; // <-- This is the MyBatis Mapper 

    // The NullPointerExceptions is thrown here 
    public List<Weather> getAll(){ 
     return weatherMapper.getAll(); 
    } 

} 

Warum weatherMapper null ist, wenn ich Autowired Anmerkung verwende?

Antwort

-1

sollten Sie in "weatherMapper" -Klasse einchecken, denke ich, die Abfrage gibt Null dort zurück.

+0

Danke für Ihren Kommentar, aber wenn die Abfrage NULL ergibt, wird die Ausnahme ausgelöst, wenn ich den Rückgabewert der getWheather-Methode auf dem Controller verwenden. –

Verwandte Themen