Jpa 通过使用Vaadin CDI集成插件实现EJB注入到Vaadin 7 UI

Jpa 通过使用Vaadin CDI集成插件实现EJB注入到Vaadin 7 UI,jpa,ejb,vaadin,cdi,code-injection,Jpa,Ejb,Vaadin,Cdi,Code Injection,我无法成功集成正式的Vaadin CDI集成插件,因为在完成正式集成说明后,如果我重新加载已发布的URLlocalhost:8080/App/?restartApplication,将引发以下异常 javax.servlet.ServletException: com.vaadin.server.ServiceException: java.lang.IllegalStateException: UI id has already been defined 下面的小解决方案是一个经过测试的

我无法成功集成正式的Vaadin CDI集成插件,因为在完成正式集成说明后,如果我重新加载已发布的URL
localhost:8080/App/?restartApplication
,将引发以下
异常

javax.servlet.ServletException: com.vaadin.server.ServiceException: 
java.lang.IllegalStateException: UI id has already been defined


下面的小解决方案是一个经过测试的工作解决方案,它完成了官方说明。

您必须完成以下步骤,才能成功地将官方CDI集成插件集成到您的Vaadin项目中

  • 严格按照规定去做
  • 从URL中删除
    ?restartApplication
    参数。这样可以避免出现
    异常
  • 注入EJB,如下面的清单所示
  • 请记住,如果需要,请手动重新启动应用程序


就这样。我希望这会有所帮助:-)

您必须完成以下步骤,才能成功地将官方CDI集成插件集成到您的Vaadin项目中

  • 严格按照规定去做
  • 从URL中删除
    ?restartApplication
    参数。这样可以避免出现
    异常
  • 注入EJB,如下面的清单所示
  • 请记住,如果需要,请手动重新启动应用程序

就这样。我希望这有帮助:-)

@CDIUI
public class ExampleCDIUI extends UI {

    @Inject
    MyLocalBeanInterface myBean;

    @Override
    public void init(VaadinRequest request) {
        Label label = new Label("Hello Vaadin user");
        setContent(label);

        // myBean should be accessible now.

    }

}