我用的是struts 1.2 + spring 3.0 + hibernate 3.3 , 用myeclipse 9.0 + tomcat 7.0+jdk1.7.applicationContext.xml中:
加入:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean>
后,
项目运行,出现404错误:The requested resource is not available.
去掉这几行,就没有错误。 可必须加上, 否则数据库无法调试。我看了,
WEB-INF\lib 下hibernate3.jar 中有org.hibernate.dialect.SQLServerDialect
WEB-INF\lib 下hibernate3.jarorg.springframework.orm-3.0.5.RELEASE.jar中有org.springframework.orm.hibernate3.LocalSessionFactoryBean。
那么问题出现在什么地方呢?
dataSource是没有问题的。
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testdb">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123456"></property>
</bean>数据库驱动包也加上了,没问题。问题在哪呢?
加入:
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
</props>
</property>
</bean>
后,
项目运行,出现404错误:The requested resource is not available.
去掉这几行,就没有错误。 可必须加上, 否则数据库无法调试。我看了,
WEB-INF\lib 下hibernate3.jar 中有org.hibernate.dialect.SQLServerDialect
WEB-INF\lib 下hibernate3.jarorg.springframework.orm-3.0.5.RELEASE.jar中有org.springframework.orm.hibernate3.LocalSessionFactoryBean。
那么问题出现在什么地方呢?
dataSource是没有问题的。
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testdb">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123456"></property>
</bean>数据库驱动包也加上了,没问题。问题在哪呢?
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory'我用的数据库是sql server 2000 sp4. 数据库应该没有问题。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory'就是applicationContext.xml 中的 bean 不能创建。
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></bean>
看到底是这个bean的哪个部分出问题了,
<ref bean="dataSource"></ref>
</property>
就没有报错, 可我必须加上呀。tomcat 显示:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()Z是com.microsoft.jdbc.base.BaseDatabaseMetaData.supportsGetGeneratedKeys()出现了异常。怎么回事?
sqlserver 2000的3个驱动包 已经放在了lib下.dataSource配置:
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
</property>
<property name="url"
value="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=testdb">
</property>
<property name="username" value="sa"></property>
<property name="password" value="123456"></property>
</bean>
那有问题呢?
或者hibernate 3.3 与sqlserver 2000不兼容?
hibernate 3.3 与 sqlserver 2000驱动(3个文件)不兼容
后更换了sqlserver 2000驱动为jtds-1.2.jar后, 成功
配置如下:
<property name="driverClassName"
value="net.sourceforge.jtds.jdbc.Driver">
</property>
<property name="url"
value="jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=testdb">
</property>