我是这里的新手,也是CDI世界的新手,我在工作中得到的第一项任务就是找到一种控制CDI上传的方法.
我们同时使用EJB 3.1和CDI 1.0,因为它们是由不同的容器控制的,我们可以控制何时和以何种顺序EJB管Bean将达到使用@Startup和@Singleton标注.
但是@Inject我在我的类中声明的CDI bean因为CDI容器尚未启动而变为空.
我已经尝试了好几天来寻找解决方案,而我在这里找到的解决方案没有用(仍然是空的).
我们正在使用Java EE 6并在WebSphere Application Server 8上运行该应用程序.
请问,如果你能帮我找到一种方法来控制内部和不管EJB的CDI上传?
这是一个示例代码:
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Singleton
@Startup
public class BaseStartupLoader{
/**
* Default constructor.
*/
@Inject @MyStartup
BaseStartUp myStartup;
private static Logger m_logger = LoggerFactory.getLogger(BaseStartupLoader.class);
public BaseStartupLoader() {
}
@PostConstruct
public void init(){
String applicationName = null;
try {
applicationName = myStartup.getClass().getName();
myStartup.load();
} catch (IllegalAccessException e) {
m_logger.error("Faild to load data …Run Code Online (Sandbox Code Playgroud)