サーブレット例外が発生しUriFragmentUtilityは、私はこのvaadinを次れたとして
ここで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)
私は私のメインアプリケーションクラスにオブジェクトを追加する方法である:それはURI主要部(アドレス+パス+オプションのクエリパラメータ)について語るチュートリアルで
//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);
}
、私のパスが設定されていますas/Du gsi_Manager(web.xml)は、urifu
オブジェクトをhttps://localhost:8080/Dugsi_Manger#login
として追加した後に開始されませんか?
編集:ログインウインドウの宣言を追加しました:
public Window createLoginWindow(){
final Window loginWindow = new LoginWindow();
//remove the window if closed to avoid memory leaks
loginWindow.addListener(new CloseListener() {
@Override
public void windowClose(CloseEvent e) {
if (getMainWindow() != loginWindow) {
DugsiManagerApplication.this.removeWindow(loginWindow);
}
}
});
return loginWindow;
}
\ ** UriFragmentUtility
オブジェクトが標準Vaadinウィンドウに追加することができるようようだが、私のcreateLoginWindow
機能で作成した画面上では動作しません。 ?なぜ私は理解できませんか?
のレイアウトに直接ごUriFragmentUtilityを追加していないが、それは全く影響しません。それは、createLoginWindow()関数を使ってウィンドウを作成する方法が好きではないようです。私は標準のvaadin.ui.Windowクラスを使用してウィンドウを作成する場合、それは正常に動作します。 LoginWindowクラスの作成方法を示す編集を追加しました。 – Warz