我正在使用带有CDI的Vaadin 7。一切都运行良好,直到我想在我的项目中使用其他UI类来生成动态文档。
@CDIUI(value = "PrintUI")
public static class PrintUI extends UI
{
@EJB
MyBean myBean;
@Override
protected void init(VaadinRequest request)
{
setContent(new Label(myBean.getHTMLContent(), ContentMode.HTML));
}
}
//method somewhere in the main UI class custom component
void printOpenedPage ()
{
// Create an opener extension
BrowserWindowOpener opener = new BrowserWindowOpener(PrintUI.class);
opener.setFeatures("height=200,width=400,resizable");
// A button to open the printer-friendly page.
Button print = new Button("Click to Print");
opener.extend(print);
}
我的问题是,当我打开窗口时,我总是得到NPE,因为MyBean对象已被注入。我试图使用@Inject和@EJB。还试图注入该类的本地接口,但没有运气。是否可以访问通过BrowserWindowOpener类打开的UI类中的Stateless ejb对象?
提前致谢