2012-07-05 50 views
0

我正在使用@configurable註釋Vaadin控制器以及我的Spring上下文,它工作正常 - 除了當我需要重新啓動Tomcat,並且會話被反序列化時。然後,我得到這個我Vaadin應用程序:@configurable Vaadin應用程序控制器不會在tomcat重啓後重新注入

org.springframework.beans.factory.wiring.BeanConfigurerSupport Bean工廠尚未設置BeanConfigurerSupport:確保此配置者在Spring容器中運行。無法配置[web.vaadin.ui.BackOfficeApplication]類型的bean。無注射進行。

我在想,這可能是因爲vaadin應用程序在spring bean factory有機會之前進行了反序列化?

(我使用CTW - AspectJ和Spring 3.1.1.RELEASE)

注:

似乎在日誌中,這些錯誤之前來了 「根WebApplicationContext的:初始化啓動」。在上下文初始化開始之前,bean如何被自動裝配?

回答

0

我不是Spring和Tomcat的(de)序列化方面的專家,這不是一個答案,但可能是一種解決方法。

如果BackOfficeApplication是您的Vaadin應用程序,那麼在該類別上使用@Configurable是另一種選擇。相反,創建一個每Vaadin應用Spring應用程序上下文XML文件,將它添加到它使你BackOfficeApplication實例被裝配等:

<bean id="backOfficeApplication" 
    class="org.dellroad.stuff.vaadin.ContextApplication" 
    factory-method="get"/> 

一般來說,@Configurable可以比普通的bean佈線,因爲比較麻煩他們要求配置在對象構造時發生,而不是讓豆廠稍後進行佈線,在那裏它可能更好地檢測迴路,強制排序等。

理想情況下,正常的bean佈線應該用於單件在應用程序開始時初始化一次,並且@Configurable應該用於隨機創建的「即時」bean在正常操作期間。

相關問題