首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

初学ssh配备,出错了,一直找不出原因

2013-01-11 
初学ssh配置,出错了,一直找不出原因错误是:继承HibernateDaoSupport的UsersImpl获取到的getHibernateTempl

初学ssh配置,出错了,一直找不出原因
错误是:继承HibernateDaoSupport的UsersImpl获取到的getHibernateTemplate()一直没有值

 这是applicationContext的配置<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
       <property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property>
       <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"></property>
       <property name="user" value="ssh"></property>
       <property name="password" value="ccb"></property>
       
       <property name="minPoolSize" value="1"></property>
       <property name="maxPoolSize" value="20"></property>
       <property name="initialPoolSize" value="1"></property>
       <property name="maxIdleTime" value="20"></property>      
    </bean>
    
    <!-- Hibernate的SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
       <property name="dataSource">
          <ref bean="dataSource"/>
       </property>
       <property name="hibernateProperties">
          <props>
             <prop key="hibernate.show_sql">true</prop>
             <prop key="hibernate.format_sql">true</prop>
             <prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
          </props>
       </property>
       <property name="mappingResources">
          <list>
             <value>test1/po/Users.hbm.xml</value>
          </list>
       </property>
    </bean>

    <bean id="userDao" class="test1.impl.UsersImpl">
       <property name="sessionFactory"> 
          <ref bean="sessionFactory"/>
       </property>
    </bean>
   
    <bean id="mgr" class="test1.impl.UsersManagerImpl">
       <property name="userDao">
          <ref bean="userDao"/>
       </property>
    </bean>

    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">


       <property name="sessionFactory">
          <ref local="sessionFactory"/>
       </property>
    </bean>

    <bean id="transactionInterceptor" alt="初学ssh配备,出错了,一直找不出原因" />
这是导入的jar包初学ssh配备,出错了,一直找不出原因
初学ssh配备,出错了,一直找不出原因
这是UsersImpl部分内容
 package test1.impl;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import test1.dao.UsersDao;
import test1.po.Users;

public class UsersImpl extends HibernateDaoSupport implements UsersDao {
......
public List<Users> findAll() {
     if(getHibernateTemplate()!=null){
     List<Users> lu=getHibernateTemplate().find("from Users");
     return lu;
     }else{


     System.out.println("---null---");
     }
return null;
}
......
}
在LoginAction里直接测试,execute里部分代码如下:
UsersDao uu=new UsersImpl();
List<Users> lu=uu.findAll();
if(lu!=null&&lu.size()>0){
for (Users users : lu) {
System.out.println(users.toString());
}
}else{
System.out.println("空值");
}

return SUCCESS;

运行后出现结果为:
初学ssh配备,出错了,一直找不出原因

发现好像是spring没给UsersImpl里的sessionFactory注入值,导致hibernateTemplate也是null

到底是哪里出错了呢?
[解决办法]
hibernate和spring结合的时候,可以直接用hibernateTemplate,也是由spring进行注入,加上代码试试:
  <bean id="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory" />
  </bean>
[解决办法]

引用:
UsersDao uu=new UsersImpl();
你这里用new了当然没注入了。你都叫给spring管理了应该由spring来创建这个UsersDao
UsersDao uu=(UsersDao)new ClassPathXmlApplicationContext("applicationContext.xml").getBean("userDao");

楼主用这种方式能获取的到就ok了
[解决办法]
你这异常信息不是正规的。

热点排行