NamingException, загружающий компонент с JNDI - PullRequest
0 голосов
/ 14 января 2019

У меня есть два EJB без сохранения состояния, которые реализуют интерфейс. Для загрузки реализации я использую InitialContext, но он всегда завершается ошибкой с NamingException.

Интерфейс

package app.ejb.login;

public interface UserValidation {

    public static final int DBValidation = 1;
    public static final int LDAPValidation = 2;

    public int validateUser(String userid, String password) throws InvalidAccessException;

}

Первая реализация

package app.ejb.login;

@Stateless
public class LDAPUserValidationImpl implements UserValidation {

    @Override
    public int validateUser(String userid, String password) throws InvalidAccessException {
            ........................
    }

}

и вторая реализация

package app.ejb.login;

@Stateless
public class DBUserValidationImpl implements UserValidation {

    @Override
    public int validateUser(String userid, String password) throws InvalidAccessException {
            ..................
    }

}

Это код, который вызывает реализацию в зависимости от конфигурации:

package app.ejb.login;

@Stateless
public class LoginBean {
.....
.....
UserValidation userValidation = null;
InitialContext ic = null;
try {
    ic = new InitialContext();
    if (flag == 1)
        userValidation = (UserValidation) 
            ic.lookup("java:comp/env/app/ejb/login/DBUserValidationImpl");
    else 
        userValidation = (UserValidation) 
            ic.lookup("java:comp/env/app/ejb/login/LDAPUserValidationImpl");
    }
    catch (NamingException e) {
            System.out.println("Error in InitialContext: " + e.getMessage());

Этот код печатает:

Ошибка в InitialContext: env / app / ejb / login / DBUserValidationImpl - служба jboss.naming.context.java.comp. "app-2.0". "app-ejb-2.0" .LoginBean.env.app.ejb.login.DBUserValidationImpl

Какой правильный JNDI для загрузки бина? Разве не указан полный путь к пакету?

Я также пытался с java:module/app/ejb/login/DBUserValidationImpl, но получил ту же ошибку.

1 Ответ

0 голосов
/ 15 января 2019

Это сработало:

java:module/DBUserValidationImpl
...