<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 81  文章 - 1033  trackbacks - 0
    <2014年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    在浮躁的年代里,我們進取心太切,患得患失;虛榮心太強,戰(zhàn)戰(zhàn)兢兢。一心爭強好勝,惟恐榜上無名。
    I think I can fly , and flying like a bird !
    程序員一名,已售出,缺貨中!

    我的郵件聯(lián)系方式

    用且僅用于MSN

    博客點擊率
    free web counter
    free web counter

    常用鏈接

    留言簿(36)

    隨筆檔案

    搜索

    •  

    積分與排名

    • 積分 - 186925
    • 排名 - 309

    最新評論

    閱讀排行榜

    評論排行榜

    ??? 在Spring2.0中除了以前的Singleton和Prototype外又加入了三個新的web作用域,分別為request、session和global session,它們的含義和用法請大家參考Spring官方手冊的相關(guān)章節(jié)。如果你想讓你的容器里的某個bean擁有其中某種新的web作用域,除了在bean級上配置相應(yīng)的scope屬性,還必須在容器級做一個額外的初始化配置。即在web應(yīng)用的XML聲明文件web.xml中增加下述ContextListener

    1?<web-app>
    2???
    3???<listener>
    4?????<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
    5???</listener>
    6???
    7?</web-app>

    ??? 如果你用的是早期版本的web容器(Servlet 2.4以前),那么你要使用一個javax.servlet.Filter的實現(xiàn)。


    ?1?<web-app>
    ?2???..
    ?3???<filter>?
    ?4?????<filter-name>requestContextFilter</filter-name>?
    ?5?????<filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
    ?6???</filter>?
    ?7???<filter-mapping>?
    ?8?????<filter-name>requestContextFilter</filter-name>?
    ?9?????<url-pattern>/*</url-pattern>
    10???</filter-mapping>
    11???
    12?</web-app>

    ??? 兩種方式完成完全一樣的功能:基于LocalThread將HTTP request對象綁定到為該請求提供服務(wù)的線程上。這使得具有request和session作用域的bean能夠在后面的調(diào)用鏈中被訪問到。

    ??? 我一直使用的是Filter的配置方式,雖然使用的web容器Resin3.0.19是支持servlet2.4的但也懶得改為更為簡潔的Listener了。使用一切正常,昨日無聊翻閱Spring的手冊無意中又看到這一節(jié),想想自己也太懶了,幾句話就改了為什么不更簡單呢?于是就把配置改成了Listener的方式,啟動一切正常,但當請求第一個鏈接時居然報錯了!

    ?1?java.lang.NullPointerException
    ?2?????at?org.springframework.web.context.request.RequestContextListener.requestDestroyed(RequestContextListener.java:67)
    ?3?????at?com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:120)
    ?4?????at?com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    ?5?????at?com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
    ?6?????at?com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106)
    ?7?????at?org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
    ?8?????at?org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
    ?9?????at?org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
    10?????at?org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    11?????at?org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
    12?????at?javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
    13?????at?javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
    14?????at?com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
    15?????at?org.extremecomponents.table.filter.AbstractExportFilter.doFilter(AbstractExportFilter.java:49)
    16?????at?com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
    17?????at?org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:173)
    18?????at?org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    19?????at?com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
    20?????at?org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
    21?????at?org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    22?????at?com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
    23?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
    24?????at?org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    25?????at?org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    26?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    27?????at?org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    28?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    29?????at?org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    30?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    31?????at?org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
    32?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    33?????at?org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
    34?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    35?????at?org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
    36?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    37?????at?org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
    38?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    39?????at?org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
    40?????at?org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
    41?????at?org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
    42?????at?org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    43?????at?com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
    44?????at?com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:178)
    45?????at?com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    46?????at?com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
    47?????at?com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
    48?????at?com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
    49?????at?com.caucho.util.ThreadPool.run(ThreadPool.java:433)
    50?????at?java.lang.Thread.run(Thread.java:595)
    51?[10:01:26.109]?java.lang.NullPointerException
    52?[10:01:26.109]?????at?org.springframework.web.context.request.RequestContextListener.requestDestroyed(RequestContextListener.java:67)
    53?[10:01:26.109]?????at?com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:188)
    54?[10:01:26.109]?????at?com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
    55?[10:01:26.109]?????at?com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:268)
    56?[10:01:26.109]?????at?com.caucho.server.port.TcpConnection.run(TcpConnection.java:389)
    57?[10:01:26.109]?????at?com.caucho.util.ThreadPool.runTasks(ThreadPool.java:507)
    58?[10:01:26.109]?????at?com.caucho.util.ThreadPool.run(ThreadPool.java:433)
    59?[10:01:26.109]?????at?java.lang.Thread.run(Thread.java:595)

    ??? 順便說一下,用Listenter方式配置初始化ApplicationContext的ContextLoaderListener是正常的,它也是需要servlet2.4支持的,所以應(yīng)該不是因為容器支持的servlet版本問題。 ?

    ??? 換回Filter后一切正常,看了一下Spring源碼也沒看除個所以然,在網(wǎng)上找了很久也沒找到答案,很是郁悶!希望路過的高人們能夠不吝賜教,感激涕零!

    posted on 2007-02-08 10:10 cresposhi 閱讀(5526) 評論(20)  編輯  收藏

    FeedBack:
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 11:26 GoKu
    都說Resin速度比Tomcat快,為什么用Resin的人比較少...  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 11:29 施偉
    教科書上講的都是tomcat,大家都是從那個階段過來的,然后中國的教育從小到大都是這樣,都不怎么喜歡嘗試新的東西,喜歡照書做。不過話說回來,tomcat誰做的,apache啊,牛啊,讓人放心!  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 12:04 梅穎
    插不上嘴了。。。唉  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:11 BeanSoft
    哈,因為自己blog寫的牢騷貼說了幾句框架的壞話, 就有人留言說:
    ALin
    Posted @ 2007-02-08 09:56
    從此以后不再讀這個Blog里面的任何文章……
    見: Java 這么多框架, 前途在何方?
    http://www.tkk7.com/beansoft/archive/2007/02/03/97774.html

    Resin(有Open Source版本和商業(yè)版, 像 Mysql 那樣) 啟動的確比 Tomcat 快, 速度也快, 不過部分地方是不太符合 Tomcat 的慣例(不知道算不算 JSP 規(guī)范), 所以有些應(yīng)用會報錯. 最新的Resin 3.0.22 修正了很多不兼容的 bug.

    at org.springframework.web.context.request.RequestContextListener.requestDestroyed(RequestContextListener.java:67)

    看看這個 Spring 中類的源碼是不是取不到 context 什么的.

      回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:27 BeanSoft
    public class RequestContextListener implements ServletRequestListener {

    /** Logger available to subclasses */
    protected final Log logger = LogFactory.getLog(getClass());


    public void requestInitialized(ServletRequestEvent requestEvent) {
    //....
    }

    public void requestDestroyed(ServletRequestEvent requestEvent) {
    ServletRequestAttributes requestAttributes =
    (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    requestAttributes.requestCompleted();
    RequestContextHolder.setRequestAttributes(null);
    LocaleContextHolder.setLocale(null);
    if (logger.isDebugEnabled()) {
    logger.debug("Cleared thread-bound request context: " + requestEvent.getServletRequest());
    }
    }

    }

    seems requestAttributes 取到的結(jié)果是 null, 把這里加個判斷修正一下重新編譯打包不知道會不會好. 我看的是 2.0.2 的 src.  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:39 施偉
    這個代碼我跟過了。。。 如果就這樣判斷然后就跳過去我總覺得不過,因為在tomcat里應(yīng)該是沒有問題的 所以這里的對象應(yīng)該是存在的,如果不找到根本原因 恐怕會有內(nèi)存泄漏等問題。。。  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:47 施偉
    @BeanSoft
    在你的那篇文章里留了一句話,也在這里發(fā)一遍,緊記于心:框架是告訴人們不該去做什么,而不是告訴人們該去做什么;容器是告訴人們該去做什么,而不是告訴人們不該去做什么!
    有點繞口,不過味深!  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:54 BeanSoft
    看到了. 呵呵, 有時候是挺頭痛. 不過我想要是把你的問題放到 springside, 應(yīng)該有人能指點一下吧. Google 一下看看有人遇到過沒有.  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:58 施偉
    昨天晚上google了半天都沒找到。。。等會到springside和spring中文站去逛逛,看有沒結(jié)果,現(xiàn)在只能將就著Filter用著了。。。框架啊框架 呵呵  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 13:59 BeanSoft
    開源的沒技術(shù)支持, API 不穩(wěn)定, 的確是個大問題. 今天吃飯同事們還聊到 Struts 2.0 簡直就跟 1.0 沒共同點了快.  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 14:02 施偉
    Struts2就是webwork2。。。說是從Struts1過渡過來確實是瞎掰
    老項目還不如就用Struts1算了
    新的項目再說吧,不過webwork確實比Struts要爽的多,夠簡單。。。我喜歡。。。  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-08 14:21 梅穎
    你這熱鬧了,不要我了。。。  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-10 21:58 施偉
    要啊要啊,誰說不要啊,呵呵!  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-12 12:26 梅穎
    呵呵,我們老大都來了的,但是她冒留言,呵呵  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-02-13 09:08 施偉
    怎么不留言列?你們老大搞這么深沉搞么事灑,呵呵  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-03-20 15:32 ssmax
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問[未登錄] 2007-07-06 09:26 sun
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問 2007-08-14 01:04 farush
    我也是遇到同樣的問題。
    我用的是jetty5.1.12
    servlet2.4 (web.xml 頭也同樣正常聲明了使用servlet2.4)
    spring2.0.6

    我也是使用監(jiān)聽器的方式。

    不過我的情況更壞,當使用
    org.springframework.web.context.ContextLoaderListener時:
    bean的scope為singleton或prototype時,正常,但scope為request或session時,容器在啟動就拋出異常。提示建議我使用:
    org.springframework.web.context.request.RequestContextListener
    于是,我將監(jiān)聽器ContextLoaderListener換成了RequestContextListener,這里容器啟動拋新異常,提示W(wǎng)ebApplicationContext沒初始化,建議我使用ContextLoaderListener,
    無奈,兩個監(jiān)聽器都加上,
    這下兩個異常一起拋。。。。。

    更奇怪的是,即使bean是singleton,
    單單使用
    org.springframework.web.context.request.RequestContextListener
    這種方式還是啟動不了,提示W(wǎng)ebApplicationContext沒得到初始化。。。

    PS:
    eclipse3.3
    jdk5.0
    maven2

    很是郁悶,郁悶了幾天了,只能暫時不用request和session bean了。。。  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問[未登錄] 2008-12-03 16:04 Dragon
    @BeanSoft
    兩者不同了,Struts2 是webwork升級版  回復  更多評論
      
    # re: Rensin3.0.19中不能使用Listener方式配置RequestContextListener支持Spring2中的web作用域的疑問[未登錄] 2014-08-09 20:14 CC
    雖然這么久遠了,但我還是回一個,讓碰到這個問題的兄弟們別走彎路

    程序用spring4.0.5,struts2.3.16.3,listener配置,測試環(huán)境tomcat7.0.54上程序正常,生產(chǎn)環(huán)境tomcat7.0.52,碰到了樓主一樣的問題,最后升級成tomcat7.0.55就沒問題了,所以在各種框架滿天飛的天下,webserver也要和第三方j(luò)ar包同步更新,才能抵御隨時可能出現(xiàn)的各種不兼容問題  回復  更多評論
      

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 日韩在线一区二区三区免费视频 | 国产精品白浆在线观看免费| 国产乱色精品成人免费视频| 亚洲精品国产高清在线观看| 在线播放免费人成视频在线观看| 亚洲国产成AV人天堂无码| 最近免费中文字幕大全高清大全1 最近免费中文字幕mv在线电影 | 最刺激黄a大片免费网站| 亚洲国产激情一区二区三区| 亚洲Aⅴ在线无码播放毛片一线天 亚洲avav天堂av在线网毛片 | 日韩免费视频播播| 欧洲亚洲综合一区二区三区| 手机在线免费视频| 国产99久久亚洲综合精品| 亚洲女人被黑人巨大进入| 99久久婷婷免费国产综合精品| 国产av无码专区亚洲av桃花庵| 免费A级毛片av无码| 2020国产精品亚洲综合网| 免费鲁丝片一级观看| 久久久亚洲精华液精华液精华液| 午夜精品在线免费观看| 国内成人精品亚洲日本语音 | 国产亚洲大尺度无码无码专线 | 国产成人午夜精品免费视频| 亚洲情A成黄在线观看动漫软件| 精品无码国产污污污免费| 无码毛片一区二区三区视频免费播放 | 久章草在线精品视频免费观看| 午夜亚洲AV日韩AV无码大全| 久久九九兔免费精品6| 亚洲色少妇熟女11p| 亚洲午夜精品第一区二区8050| 日本一区二区免费看| 亚洲精品电影在线| 国产区卡一卡二卡三乱码免费| 免费一区二区无码东京热| 国产亚洲精aa在线看| 久久久久久久亚洲精品| 57PAO成人国产永久免费视频| 国产一区二区三区亚洲综合|