我用的是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>数据库驱动包也加上了,没问题。问题在哪呢?

解决方案 »

  1.   

    log错误:
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory'我用的数据库是sql  server 2000  sp4. 数据库应该没有问题。
      

  2.   


    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory'就是applicationContext.xml 中的 bean 不能创建。
      

  3.   

    你改成这样试试,
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"></bean>
    看到底是这个bean的哪个部分出问题了,
      

  4.   

    看看spring配置关于sessionFactory的有问题没
      

  5.   

    我去掉了<property name="dataSource">
    <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不兼容?
      

  6.   

    解决了。
    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>