Miałem bezstanowe ziarno ejb implementujące lokalny interface:
@Stateless(mappedName="ABC", name="ABC")
public class ABCService implements ABCLocal{
...
}
, które próbowałem wstrzyknąć do servletu używając
@EJB
ABCLocal abc;
Ponadto próbowałem ustawiać parametry adnotacji EJB
@EJB(beanName="ABC)
ABCLocal e1;
@EJB(beanName="ABC/local")
ABCLocal e2;
@EJB(mappedName="ABC")
ABCLocal e3;
@EJB(mappedName="ABC/local")
ABCLocal e4;
@EJB(name="ABC")
ABCLocal e5;
@EJB(name="ABC/local")
ABCLocal e6;
- każdorazowo wartością był null.
Zgodnie z dokumentacją JBossa ziarna są rejestrowane w JNDI pod nazwa_ear/nazwa_ejb/local oraz nazwa_ear/nazwa_ejb/remote. Niestety to rozwiązanie nie odpowiadało mi, gdyż nie chciałem uzależniać działania aplikacji od nazwy archiwum ear.
Ostatecznie zdecydowałem sie na dodanie do ziarna adnotacji
@LocalBinding(jndiBinding = "ABCApp/ABC/local")
dzięki czemu mogę sie odwoływać do ziarna za pomocą
@EJB(mappedName="ABCApp/ABC/local")
ABCLocal abc;
Brak komentarzy:
Prześlij komentarz