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?
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. –