Interfejsy EJB

0

Witam,

Mam dwa kontrolery, które korzystają z interfejsów EJB.

public class CityController {
  @EJB
  CityDAO cityDAO;

  (...)

  private void setProvinceName() {
    ProvinceController pContr = new ProvinceController();
    Province province = pContr.getProvince(provinceName);

    city.setProvince(province);
  }
}

CityController posiada metodę w której tworzy obiekt ProvinceController i wywołuje jego metodę getProvince(). city oraz provinceName to pola składowe klasy CityController.

public class ProvinceController {

    @EJB
    ProvinceDAO provinceDAO;

    public Province getProvince(final String name) {
        final Province province = provinceDAO.getProvince(name);
        
        return province;
    }
    
}

Z kolei ProvinceController posiada odpowiedni interfejs EJB do pobrania danych z bazy.

Niestety - nie działa :)

Metoda pContr.getProvince(provinceName) w CityController zwraca NullPointerException

Z EJB'em jest wszystko w porządku - gdy w CityController wywołuję bezpośrednio metodę interfejsu
@ejb ProvinceDAO provinceDAO, to wszystko jest OK...

Nie rozumiem, dlaczego to nie działa

Pozdrawiam

0

ProvinceController pContr = new ProvinceController();
Province province = pContr.getProvince(provinceName); <--- TU leci ci ten Null

bo provinceDAO ktore znajduje sie w ProvinceController jest nullem
kto ma ustawic wartosc provinceDAO ???? Bo jak kontener to na pewno tak sie nie stanie. Instancjujac samemu komponenty musisz zadbac o wszystko sam

0

OK rozumiem, dzięki

A pytanko - czy korzystanie z kilku interfejsów EJB w jednym kontrolerze jest hmmm... nie zalecaną praktyką? :)

Czy powinno być tak, że jeden kontroler - jeden interfejs EJB?

1 użytkowników online, w tym zalogowanych: 0, gości: 1