gpt4 book ai didi

java - 从 GlassFish 4.1 中的自定义 JNDI 资源返回值

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

我尝试过多种方式来实现这一点,但这是对我来说最有意义的方式,而且我仍然无法从我的资源中返回任何内容。我使用 GlassFish 管理 GUI 添加了资源(本质上,我试图在本地服务器上保存用户名和密码)。

当我遇到空指针异常 (NPE) 时,请不要在此处指出我,这对我没有任何帮助。 What is a NullPointerException, and how do I fix it?

这是我的支持类(class)...

创建 bean

   @LocalBean
@Stateless

public class JndiProperties {

@Resource(name="jndiCreds")
private Properties properties;

public String getUser() {
return properties.getProperty("UserName");
}
public String getPass() {
return properties.getProperty("UserPass");
}
}

这是我的 Bean 管理器:

 @ManagedBean
@ViewScoped
public class GetCreds {
@Inject
private JndiProperties property;
public String getUserName(){
return property.getUser();
}
public String getPassword(){
return property.getPass();
}
}

这就是我调用它们的方式

GetCreds creds = new GetCreds();
String username = creds.getUserName();
String pass = creds.getPassword();

我将资源命名为 jndiCreds,名称为 UserName 和 UserPass,其值包含各自的数据。

这是 GlassFish GUI 的 View :

Enter image description here

知道为什么它不会返回我请求的信息吗?当我从 getCreds 调用任一函数时尝试调用资源时,我收到了 NPE。

如果有帮助,我们将不胜感激;我陷入了困境。

我决定放弃尝试使用 bean 并直接访问它(尽管我在这里放弃了一些安全性)。我正在尝试以上下文方式访问数据。但!我还是做不到啊!这是我的新支持类:

public class JndiProperties {

public Properties getProperties(String jndiName) {
Properties properties = null;
try {
InitialContext context = new InitialContext();
properties = (Properties) context.lookup(jndiName);
context.close();
}
catch (NamingException e) {

return null;
}
return properties;
}

这就是我获取信息的方式:

JndiProperties creds = new JndiProperties();

String username = creds.getProperties("jndiCreds").getProperty("UserName");
String pass = creds.getProperties("jndiCreds").getProperty("UserPass");

String credentials = String.join(System.getProperty("line.separator"),
"user=" + username,
"password=" + pass);
System.out.print(credentials);

我正在使用上面显示的相同资源。我仍然以空指针结束...任何帮助将不胜感激。也请随意回答我的 bean 实现有什么问题。

最佳答案

我已经明白了!

首先发生的事情是,我是个十足的白痴,我试图用 JUnit 测试我的程序(它不在服务器上运行!)

由于程序未在 GlassFish 上运行,因此无法访问资源。

其次,(也是最重要的)我缺少 appserver-rt.jar - 非常重要。

关于java - 从 GlassFish 4.1 中的自定义 JNDI 资源返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44459857/

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