我們使用JBoss 4.22和portlet。當偵聽器標籤不在web.xml中時,portlet加載,但偵聽器sessionDestroyed()從不被調用(顯然)。添加portlet時未加載,並且沒有任何例外或日誌消息。是否有任何我應該知道的陷阱?我的web.xml中的監聽器有什麼問題?
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- Listeners used by application -->
<listener>
<listener-class>listenerpackage.MyClassThatImplementsHttpSessionListener</listener-class>
</listener>
...Other tags...
</web-app>
在回覆評論時,我一直在尋找代碼來查找問題點。我的Listener的構造函數確實有一些可能的麻煩。通常(不是偵聽器)一個實例將由相關的portlet(當偵聽器添加到web.xml中時未加載的)構造函數創建。我仍然可以期待這種情況,或容器是否自己創建實例?
原則上,應該沒問題。你的聽衆是否會做出任何可能帶來連鎖效應的俏皮話? – skaffman 2009-09-17 16:56:58
我不熟悉「連鎖」效果。監聽器是一個委託並管理多個對象和連接。我們讓它實現了HttpSessionListener,以便它可以清理對象並清理連接。 – Adam 2009-09-17 17:06:15
你的聽衆在做什麼?不知何故,它可能會阻止整個網絡應用程序? – nos 2009-09-17 19:18:45