gpt4 book ai didi

java - 使用 JNDI 加载 NamingException Bean

转载 作者:太空宇宙 更新时间:2023-11-04 09:55:49 24 4
gpt4 key购买 nike

我有两个实现接口(interface)的无状态 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());

此代码打印:

Error in InitialContext: env/app/ejb/login/DBUserValidationImpl -- service jboss.naming.context.java.comp."app-2.0"."app-ejb-2.0".LoginBean.env.app.ejb.login.DBUserValidationImpl

加载 bean 的正确 JNDI 是什么?不是完整的包路径吗?

我也尝试过 java:module/app/ejb/login/DBUserValidationImpl 但遇到了同样的错误。

最佳答案

这有效:

java:module/DBUserValidationImpl

关于java - 使用 JNDI 加载 NamingException Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54174157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com