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

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

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

    the journey is the reward...

    常用鏈接

    統(tǒng)計(jì)

    最新評(píng)論

    DWR在和spring集成時(shí)的bug,SpringCreator.getType???

    DWR在和spring集成時(shí),在dwr.xml中將設(shè)置creator="spring",告訴dwr將使用dwr的org.directwebremoting.spring.SpringCreator來(lái)創(chuàng)建對(duì)象實(shí)例,但是SpringCreator.getType地處理是不適當(dāng)?shù)?讓我們來(lái)看看它的源碼[dwr-3.0.0.116]:

    public Class<?> getType()
    {
    if (clazz == null)
    {
    try
    {
    clazz = getInstance().getClass();
    }
    catch (InstantiationException ex)
    {
    log.error("Failed to instansiate object to detect type.", ex);
    return Object.class;
    }
    }

    return clazz;
    }

    我們?cè)賮?lái)看看它的getInstance,最終由spring來(lái)創(chuàng)建實(shí)例.

    public Object getInstance() throws InstantiationException
    {
    try
    {
    if (overrideFactory != null)
    {
    return overrideFactory.getBean(beanName);
    }

    if (factory == null)
    {
    factory = getBeanFactory();
    }

    if (factory == null)
    {
    log.error("DWR can't find a spring config. See following info logs for solutions");
    log.info("- Option 1. In dwr.xml, <create creator='spring' ...> add
    log.info("- Option 2. Use a spring org.springframework.web.context.ContextLoaderListener.");
    log.info("- Option 3. Call SpringCreator.setOverrideBeanFactory() from your web-app");
    throw new InstantiationException("DWR can't find a spring config. See the logs for solutions");
    }

    return factory.getBean(beanName);
    }
    catch (InstantiationException ex)
    {
    throw ex;
    }
    catch (Exception ex)
    {
    throw new InstantiationException("Illegal Access to default constructor on " + clazz.getName() + " due to: " + ex);
    }
    }

    getInstance將返回由spring來(lái)創(chuàng)建的實(shí)例,很明顯SpringCreator.getType有點(diǎn)多此一舉,它先創(chuàng)建了實(shí)例,再?gòu)膶?shí)例的getClass獲取對(duì)象的類(lèi)型,而spring的beanFactory.getType同樣有此功能,但它不需要先創(chuàng)建實(shí)例.

    也許寫(xiě)這位代碼的仁兄是不知道spring beanFactory.getType這個(gè)方法吧!


    我把SpringCreator.getType改正后的代碼 如下:

    public Class<?> getType()
    {
    if (clazz == null)
    {
    try
    {
    if(overrideFactory != null){
    clazz=overrideFactory.getType(beanName);
    }else {
    if(factory == null)
    factory = getBeanFactory();
    clazz=factory.getType(beanName);
    }

    }
    catch (Exception ex)
    {
    log.error("Failed to detect type.", ex);
    return Object.class;
    }
    }

    return clazz;
    }

    如果出現(xiàn) Error loading class for creator ...... 那么就修改SpringCreator吧!

    posted on 2010-02-10 12:04 adapterofcoms 閱讀(800) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): java techs

    主站蜘蛛池模板: 精品无码人妻一区二区免费蜜桃| 一级毛片大全免费播放下载| 精品一区二区三区免费毛片爱 | 亚洲精品国产成人中文| 久久大香伊焦在人线免费| 亚洲国产成人精品无码区在线观看 | 亚洲精品午夜无码专区| 西西人体免费视频| 亚洲第一福利视频| 麻豆高清免费国产一区| 亚洲人成77777在线观看网| 午夜免费不卡毛片完整版| 精品无码专区亚洲| 亚洲一级片免费看| 国产午夜精品理论片免费观看| 久久亚洲国产精品五月天| 91久久精品国产免费一区| 亚洲av无码久久忘忧草| 日韩精品免费一区二区三区| 特级毛片全部免费播放a一级| 久久激情亚洲精品无码?V| 欧洲人免费视频网站在线| 亚洲一区在线视频| 国产又黄又爽又猛的免费视频播放| 免费播放国产性色生活片| 亚洲va无码手机在线电影| 性色av无码免费一区二区三区| 直接进入免费看黄的网站| 亚洲AV午夜成人片| 午夜dj免费在线观看| 美女网站在线观看视频免费的| 久久久亚洲欧洲日产国码aⅴ| 永久免费av无码网站大全| 中文字幕av无码不卡免费| 亚洲国产美女精品久久| 免费萌白酱国产一区二区| 青青青国产手机频在线免费观看| 亚洲综合久久精品无码色欲| av在线亚洲欧洲日产一区二区| 91精品免费高清在线| 四虎成人精品国产永久免费无码|