配置:spring 2.1,hibernate 3.2
我用spring的配置文件想获取一个hibernatedaosupport类型的bean,但是总是提示nullpointerexception,程序跟踪后发现hibernatetemplate 竟然是null的。然后我想用spring获取LocalSessionFactoryBean,又提示转换失败,我用spring获取其他的bean是正常,这到底是什么回事。
spring配置如下:
<beans>
<bean id="SybDataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.sybase.jdbc3.jdbc.SybDataSource</value>
</property>
<property name="url">
<value>jdbc:sybase:Tds:132.119.32.102:5000/ss7info?charset=eucgb&JCONNECT_VERSION=0
</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>***</value>
</property>
<property name="maxActive"><value>8</value></property>
<property name="maxIdle"><value>4</value></property>
<property name="maxWait"><value>30</value></property>
</bean>
<bean id="HibSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="SybDataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect"> org.hibernate.dialect.SybaseDialect </prop>
<prop key="showSQL">false</prop>
</props>
</property>
</bean>
<bean id="BasicDAO" class="com.test.ss7info.dao.BasicDAO">
<property name="sessionFactory"><ref local="HibSessionFactory"></ref></property>
</bean>
</beans>
我用spring的配置文件想获取一个hibernatedaosupport类型的bean,但是总是提示nullpointerexception,程序跟踪后发现hibernatetemplate 竟然是null的。然后我想用spring获取LocalSessionFactoryBean,又提示转换失败,我用spring获取其他的bean是正常,这到底是什么回事。
spring配置如下:
<beans>
<bean id="SybDataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.sybase.jdbc3.jdbc.SybDataSource</value>
</property>
<property name="url">
<value>jdbc:sybase:Tds:132.119.32.102:5000/ss7info?charset=eucgb&JCONNECT_VERSION=0
</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>***</value>
</property>
<property name="maxActive"><value>8</value></property>
<property name="maxIdle"><value>4</value></property>
<property name="maxWait"><value>30</value></property>
</bean>
<bean id="HibSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="SybDataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect"> org.hibernate.dialect.SybaseDialect </prop>
<prop key="showSQL">false</prop>
</props>
</property>
</bean>
<bean id="BasicDAO" class="com.test.ss7info.dao.BasicDAO">
<property name="sessionFactory"><ref local="HibSessionFactory"></ref></property>
</bean>
</beans>
解决方案 »
- 新手请教一个多线程中同步的问题
- 运行程序时为什么显示“错误: 找不到或无法加载主类 Hello”大家帮忙解答下
- 数据结构的一个小问题
- 急!~采集遇到重定向
- 我写了个jsp程序,想在里面写个 下载(txt)文档,不知道怎么写,各位大哥帮忙
- 两个byte型的变量怎么和成一个?
- 关于 和Array (数组)?
- 新手问一个简单的编译问题
- 谁知道jb6的licence(抢分)
- 使用TCP协议通讯,如果有很多种数据要传输,如:注册信息等,在C++中,我们可以使用结构,java中通常大家又是如何打包的呢?
- error: cannot read: HelloJava.java
- 实现Serializable接口到底什么用啊?
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:/com/.../hibernate.cfg.xml</value>
</property>
</bean>
原因是你的hibernateTemplate没有在配置文件中指明,并且dao应该依赖于HibernateTemplate
加入如下的代码试试<bean id="netHibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref local="HibSessionFactory">
</ref></property>
</bean><bean id="BasicDAO" class="com.test.ss7info.dao.BasicDAO">
<property name="hibernateTemplate">
<ref local="netHibernateTemplate"></ref>
</property>
</bean>
to feihua317(光光):试过了,问题依旧。我尝试获取LocalSessionFactoryBean出现classcastexception。根据spring的reference,两种方法都是可以的。以前我把hibernate configuration 配置在spring configuration中,是可行的,就是不知道为什么今天会这样。
to sophia_230() :hibernatetemplate是由hibernatedaosupport创建的,只要传递其正确的sessionfactory,现在的问题就是创建不了sessionfactory。为什么localsessionfactorybean会创建失败呢!!
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/xzwx/project1/pojo/User.hbm.xml</value>
</list>
</property>
</bean>