整合SSH的错误。spring为1.2   先给出配置文件
applicationContext.xml<beans>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://localhost:1433;databaseName=jb_crm_team0">
</property>
<property name="username" value="sa"></property>
<property name="password" value="sa"></property>
</bean>

<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.SQLServerDialect
</prop>
<prop key="show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/crm/entity/BasDict.hbm.xml</value>
。。
</list>
</property>
</bean>

......
</beans>Struts配置文件里也添加了相应的插件。。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: could not instantiate id generator
org.hibernate.MappingException: could not instantiate id generator
at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:92)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:151)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:178)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:139)
at org.springframework.web.struts.ContextLoaderPlugIn.createWebApplicationContext(ContextLoaderPlugIn.java:353)
at org.springframework.web.struts.ContextLoaderPlugIn.initWebApplicationContext(ContextLoaderPlugIn.java:296)
at org.springframework.web.struts.ContextLoaderPlugIn.init(ContextLoaderPlugIn.java:225)
at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1117)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1215)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1306)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.MappingException: could not interpret id generator strategy: n
at org.hibernate.id.IdentifierGeneratorFactory.getIdentifierGeneratorClass(IdentifierGeneratorFactory.java:103)
at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:86)
... 31 more
2009-05-26 08:15:39,625 [org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/proCom]]-[ERROR] action: null
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: could not instantiate id generator
org.hibernate.MappingException: could not instantiate id generator
at org.hibernate.id.IdentifierGeneratorFactory.create(IdentifierGeneratorFactory.java:92)
at org.hibernate.mapping.SimpleValue.createIdentifierGenerator(SimpleValue.java:151)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:178)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:825)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:751)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(

at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    看了半天也没看出
    估计是
    <list>
                    <value>com/crm/entity/BasDict.hbm.xml</value>
                    。。
                </list>
    这里面有错误
      

  2.   

    编程看看是不是JAR冲突或者将BasDict.hbm.xml lazy false
      

  3.   

    <list>
                    <value>com/crm/entity/BasDict.hbm.xml</value>
                    。。
                </list>
    让他找class里面的东西去!可以这样写
    <list>
    <value>classpath:/com/crm/entity</value>
    </list>
    你把你的classpath找对
      

  4.   

    我猜原因是这样的spring 和 hibernate都需要一个叫asm的jar包但是在创建工程的时候,他们分别倒入了自己asm包版本不一直,没看见异常信息里有nestedexception吗?我以前有一个帖子 估计可以解决你的问题http://topic.csdn.net/u/20081220/02/57b7ede0-213b-44ba-ae72-96375612c6fd.html
    如果解决了别忘了给分啊~
      

  5.   

    。是我手动敲进去的省略后面的  那个不是错误。我知道SPRING2 导入的包和Hibernate会产生冲突但是spring1也会么?  我曾把asm.jar去掉还是不对。3F的写法一会试试,但是我确定我的写法也没错的。。我之前就是这么做的。
      

  6.   

    我觉得问题是“could not instantiate id generator ”表示你使用自增方式生成id时,有问题,所以你应该查看一下使用SQLSERVER生成id的方式和你现在使用的方式是否相同。
      

  7.   

    我曾经也出过这个错,好像是你的包中的那些类,用到'sessionFactory' 的那些类先别分开放呢,代码都没什么问题就是你把自动生成的那些可能分开了,它找不到到'sessionFactory' 了,你看看DAO里的实体了用到的那些。。,也就是sql语句那些的,我在这也说不太清了,对没对应上你的applicationContext.xml 文件里的 
                <list>
                    <value>com/crm/entity/BasDict.hbm.xml</value>
                    。。
                </list>这个位置!仔细看看!
      

  8.   

    看看这里的吧.看一下类的映射文件,里边的主键生成器是否和数据库一样的了.,MS Server有identity,但mysql,oracle里可以是没有的
      

  9.   

    呵呵 重新集成了一次解决了 不好意思。分少了点。不是包的问题。应该是反向工程的时候出了错,记得当时由于外键关系报出了提示,但是不小心就NEXT了也每当回事。
    具体哪的毛病我也没弄清楚,重新来了一遍就OK了。