gpt4 book ai didi

java - @Startup @Singleton bean 实例的注入(inject)为空 - Tomee Webprofile 1.6.0.2

转载 作者:行者123 更新时间:2023-12-01 12:06:00 25 4
gpt4 key购买 nike

当我尝试在 POJO 中使用 Tomee 成功创建、启动并放置在“我的 Singleton 容器”中的 @Singleton @Startup bean 实例时,该实例为 null。我尝试过使用和不使用 POJO 的 @ManagedBean 注释。我是否错过了规范或教程中的一些基本内容?

提前非常感谢,特德·S。

Tomee启动日志:

Dec 21, 2014 2:48:24 PM org.apache.openejb.assembler.classic.Assembler startEjbs
INFO: Started Ejb(deployment-id=MyStartupBean, ejb-name=MyStartupBean, container=My Singleton Container)

MyStartupBean.java:

@Startup
@Singleton
public class MyStartupBean
{
private final Properties _companyNames = new Properties();

@PostConstruct
public void init()
{
_companyNames.put("key1", "ABC Company");
_companyNames.put("key2", "XYZ Company");
}

public Properties getCompanyNames()
{
return _companyNames;
}
}

MyPojo.java:

public class MyPojo
{
@EJB
private MyStartupBean _startupBean;
private String _companyName;

public MyPojo(String inputKey)
{
Properties companyNames = _startupBean.getCompanyNames(); // <== _startupBean is null
String name = companyNames.getProperty(inputKey);
setCompanyName(name);
}

public void setCompanyName(String name)
{
_companyName = name;
}

public String getCompanyName()
{
return _companyName;
}
}

最佳答案

您可能正在实例化您的 pojo,不是吗,例如

MyPojo mp = new MyPojo(someInput);

当你这样做时,注入(inject)不起作用。您需要使用托管引用来处理 CDI/EJB 组件。

关于java - @Startup @Singleton bean 实例的注入(inject)为空 - Tomee Webprofile 1.6.0.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593791/

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