我想我發現了在Jetty和Wildfly之間的Filter初始化實現方面的差異。蜻蜓「懶惰」過濾器,我可以改變它嗎?
我使用Tapestry,Spring和Hibernate的Web應用程序。我正試圖將它從Jetty遷移到Wildfly。
我web.xml中有兩個過濾器:
首先所述的OpenSessionInViewFilter(這需要WebApplicationContext被執行doInternalFilter時存在)。這個過濾器需要在Tapestry之前,以便hibernate會話包含所有針對後端數據庫的Tapestry活動。
其次就是Tapestry框架(w/spring集成)過濾器其中的init方法加載Spring的WebApplicationContext。
我在Jetty(也是在Tomcat中)沒有問題的情況下運行這個場景,但是當它移動到Wildfly時,OpenSessionInViewFilter拋出一個IllegalStateException異常,告訴我們沒有找到WebApplicationContext。
我試着調試過這個,發現Wildfly沒有調用init Filter方法,直到Filter接收到第一個要處理的請求。我同意這可能是某些情況下的性能改進,但在我目前的情況下這是一個問題。
有什麼辦法告訴Wildfly在應用程序啓動時初始化過濾器嗎?
謝謝。
這看起來像一個很好的增強,我們可以添加到wildfly /底部,你可以爲此創建jira嗎? https://issues.jboss.org/browse/WFLY – ctomc
好的,所以你說這是不可能的(除非你改變源代碼當然):D所以我會按照你的建議添加一個JIRA。如果你希望你可以添加一個答案,說「這是不可能的,只需填寫一個JIRA」,所以我會將它標記爲正確的答案。謝謝! –
我已經填寫了JIRA,以下鏈接:https://issues.jboss.org/browse/WFLY-3028 –