在action里调用用spring注入的service bean,在这一个action里最多只能调用8次,第9次就是无限的等待是怎么回事,哪个地方做的限制啊,怎么取消这个限制???

解决方案 »

  1.   

    Spring注入没啥次数限制,看看你的ServiceBean的逻辑吧。
      

  2.   

    我刚测试了一下,service里什么都不做也是只能用8次,郁闷
      

  3.   

    调用是指执行ServiceBean的方法吧。
    另外第9次的无限等待是什么意思?是打不开页面在等还是执行ServiceBean的方法在等?
      

  4.   

    是执行他的方法,页面没变化,后台输出停那了,改代码reload的时候会报Waiting for instance(1) to be deallocated
      

  5.   

    我测试是用for循环调方法(方法是空的), 然后输出,输出到8的时候for循环就不动了
      

  6.   

    怎么关闭啊?调bean里的方法还要关连接?
      

  7.   

    我也测试了一下 ,你不去访问hibernate就没有问题,说明问题不是在spring,在hibernate里
      

  8.   

    你在spring配置那里 加上 scope="request" 试试
      

  9.   

    service里的方法:
    public void test() {
    // TODO Auto-generated method stub
    System.out.println("$$$$$$$$$$$$$$$$$$$$$");
    }
    action里的方法:
    public String findVegetables() {
    for(int i=1; i<20; i++){
    vegetablesService.test();
    System.out.println("iiiiiiiiiii == " + i);
    }
    }
    //只能输出到i=8配置文件:
    <bean id="vegetablesAction" class="com.ssh.action.impl.VegetablesActionImpl"
    scope="prototype" >
    <property name="vegetablesService" ref="vegetablesService" />
    <property name="menuService" ref="menuManagerservice"/>
    <property name="unitService" ref="unitService" />
    <property name="tasteService" ref="tasteService" />
    <property name="methodService" ref="methodService" />
    <property name="priceService" ref="priceService" />
    </bean>
    <bean id="vegetablesService" class="com.ssh.service.impl.VegetablesServiceImpl"> <property name="vegetablesDao" ref="vegetablesDao" />
    </bean>这有什么问题啊?????
      

  10.   

    看不出问题,VegetablesServiceImpl代码发一下,没道理啊,你没有做限定啊
    spring更不会自动限定啊
      

  11.   

    public void test() {
    // TODO Auto-generated method stub
    System.out.println("$$$$$$$$$$$$$$$$$$$$$");
    }
    这个就是VegetablesServiceImpl里的方法,我在其他项目里测了一下,都没有这个问题,到底是怎么回事啊,都两天了,郁闷死我了
      

  12.   

    你有做过数据库连接么? spring 是不会出现这种问题的,问题不是出在spring,你按照这种方式去找
      

  13.   

    问题在于这个scope="prototype",每次for循环都要创建一个新的bean,for循环执行的比较快,可能到第九次的时候还没来得及注入或者什么原因,导致了楼主的情况,建议把scope改成scope='request'
      

  14.   

    既然其他项目里都没有这个问题,说明你的项目里有问题,你把这句System.out.println("iiiiiiiiiii == " + i);取了试一试非常规办法, 或者换个service实例 试一试