Я пытаюсь внедрить свой одноэлементный стартовый компонент, который инициализирует CustomerDataModel, в класс vaadin.
@Startup
@Singleton
public class StartupBean {
@Resource(lookup = "java:global/customerDatabase")
private String customerDatabasePath;
@Resource(lookup = "java:global/addressDatabase")
private String addressDatabasePath;
private CustomerDataModel dataModel = null;
public StartupBean() {
}
@PostConstruct
private void startup() {
File customerDatabase = new File(customerDatabasePath);
File addressDatabase = new File(addressDatabasePath);
dataModel = new DataModelImpl(customerDatabase, addressDatabase);
}
@PreDestroy
private void shutdown() {
}
public CustomerDataModel getDataModel() {
return dataModel;
}
}
Вот мой класс vaadin, которому нужен полностью инициализированный стартовый компонент
@DependsOn("StartupBean")
@Stateless
public class Workspace extends UI {
@EJB
private StartupBean startupBean;
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false, ui = Workspace.class)
public static class Servlet extends VaadinServlet {
}
@Override
protected void init(VaadinRequest request) {
if(startupBean == null) {
System.out.println("error");
}
Я пробовал это с @EJB и @Inject, ничего не работает. Я всегда получаю нулевой указатель при запускеBean. У меня также есть bean.xml в WEB-INF
я попробовал это в соответствии с http://java.dzone.com/articles/cdi-di-p1 и http://docs.oracle.com/javaee/6/tutorial/doc/gipvi.html
Кто-нибудь знает, что я делаю неправильно?