我正在將6年前的應用程序轉換爲Seam 2.2。 該應用程序用於運行在java 1.4和weblogic 8中。 它只使用jsp和servlet。 在一個servlet的我用:Seam和ServletOutputStream - 刷新不會立即可見
public void doGet (HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
{
//...
ServletOutputStream out = = res.getOutputStream();
// displaying a lot of messages
// after each println() I do a flush()
out.println("lots of messages.....");
out.flush();
out.close();
//...
}
當運行消息立即出現在瀏覽器中的應用。
當我在Weblogic 10和Java 1.6中使用Seam 2.2運行這個消息時,瀏覽器中不會立即看到消息。 只有當servlet完成運行時。
我可以改變一些東西來解決這個問題嗎?我不想改變/轉換servlet到Seam組件。該servlet運行良好。唯一的問題是刷新消息到瀏覽器窗口,這隻發生在servlet停止運行之後。
難道說的原因是,現在的servlet通過縫過濾雲:
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
還有另一種解決方案,我在幾個論壇上都看到迄今工作,無任何副作用:'<網址:Ajax4jsf的過濾力解析器=「假」 啓用緩存=「真「 regex-url-pattern =」。* \。seam |。* \。css |/a4j。*「/>'我在'components.xml'中加入了我的'old'servlet,立即刷新輸出。 – Guus 2011-03-04 11:50:33