Vaadin UriFragmentUtility导致servlet异常

Vaadin UriFragmentUtility导致servlet异常,vaadin,url-pattern,servletexception,uri-fragment,Vaadin,Url Pattern,Servletexception,Uri Fragment,当我遵循关于如何正确使用UriFragmentUtility的vaadin:tutorial时,我最终创建了该对象,并在尝试将该组件添加到主窗口后失败,出现以下异常: SEVERE: Servlet.service() for servlet [Dugsi_Manager Vaadin Application Servlet] in context with path [/Dugsi_Manager] threw exception [java.lang.UnsupportedOperation

当我遵循关于如何正确使用
UriFragmentUtility
的vaadin:tutorial时,我最终创建了该对象,并在尝试将该组件添加到主窗口后失败,出现以下异常:

SEVERE: Servlet.service() for servlet [Dugsi_Manager Vaadin Application Servlet] in context with path [/Dugsi_Manager] threw exception [java.lang.UnsupportedOperationException] with root cause
java.lang.UnsupportedOperationException
    com.vaadin.ui.CustomComponent.addComponent(CustomComponent.java:218)
    com.vaadin.ui.Panel.addComponent(Panel.java:301)
    com.vaadin.ui.Window.addComponent(Window.java:281)
    org.bixin.dugsi.web.DugsiManagerApplication.init(DugsiManagerApplication.java:44)
    com.vaadin.Application.start(Application.java:554)
    com.vaadin.terminal.gwt.server.AbstractApplicationServlet.startApplication(AbstractApplicationServlet.java:1213)
    com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:484)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:359)
    org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:275)
    org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
    org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
    org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:344)
    org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:272)
    org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81)
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
下面是我如何将对象添加到我的主应用程序类中的:

//Thread Local to create instances of our application
private static ThreadLocal<DugsiManagerApplication> threadLocal = new ThreadLocal<DugsiManagerApplication>();
@Override
public void init() {
    setInstance(this); // immediate access to the app
    //Window homeWindow = createNewWindow();
    Subject currentUser = SecurityUtils.getSubject();
    // Create the URI fragment utility
    Window window = createLoginWindow();    

    setMainWindow(window);
    final UriFragmentUtility urifu = new UriFragmentUtility();
    window.addComponent(urifu);

}
\
**似乎可以将
UriFragmentUtility
对象添加到标准的Vaadin窗口,但在使用我的
createLoginWindow
函数创建的窗口上不起作用?我不明白为什么?

这个异常是由CustomComponent的addComponent方法引发的。所以我猜CustomComponent是一个窗口的内容。要解决此问题,请将UriFragmentUtility直接添加到CustomComponent的合成根布局,而不是

window.addComponent(urifu);

我尝试将此UriFragmentUtility添加到调用起始窗口的自定义组件中,但它不起作用。它似乎不喜欢我使用createLoginWindow()函数创建窗口的方式。如果我使用标准的vaadin.ui.window类创建窗口,它就可以正常工作。我添加了编辑以显示如何创建LoginWindow类
window.addComponent(urifu);