Я бы обновил ваш класс EJB, чтобы он выглядел так:
@Stateless(name="DataAccessBean", mappedName="ejb/DataAccessBean")
@Remote(DataAccessRemote.class)
@Local(DataAccessLocal.class)
public class DataAccess implements DataAccessLocal, DataAccessRemote {
...
}
Поиск EJB из класса, развернутого в том же EAR (с использованием локального интерфейса):
InitialContext ctx = new InitialContext(); //if not in WebLogic container then you need to add URL and credentials.
// use <MAPPED_NAME>
Objet obj = ctx.lookup("java:comp/env/ejb/DataAccessBean");
EJB-инъекция обычно предпочтительна, и вы можете сделать это следующим образом:
@EJB(name="DataAccessBean")
DataAccessLocal myDataAccessBean;
Если вы пытаетесь использовать EJB удаленно, вам нужно будет использовать удаленный интерфейс и следующее имя JNDI:
DataAccessBean#<package>.DataAccessRemote