<ref local="dataSource" /> 这句话,这里local意思实说你的dataSource和你的sessionFactory配置在一个xml文件中.
既然你在web.xml中配置了Resource这个jndi, 那你首先也要配置一个bean来查找jndi实例化dataSource.
象这样:<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>java:comp/env/jdbc/TestDB</value>
    </property>
</bean>