Struts2+Spring3+Hibernate3 整合
数据库:SQL Server2005 服务器:apache-tomcat-8.0.0-RC1 开发环境:Myeclipse8.5 
报错异常如下:
Struts Problem Report
Struts has detected an unhandled exception: 
Messages: '107' ???????? 
could not insert: [com.gxwz.entity.GxUser] 
could not insert: [com.gxwz.entity.GxUser]; SQL [insert into 107gxwz.dbo.gx_user (UName, UPwd, UGender, UEmal, URole, UHead, URegDate, ULastLogin, ULastEmit, UPermit, UMobile, UUploadFilesIDs, UDownLoadFileIDs, UUrl, UTopicIDs, URevertIDs) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not insert: [com.gxwz.entity.GxUser] 
File: com/microsoft/sqlserver/jdbc/SQLServerException.java 
Line number: 216 
--------------------------------------------------------------------------------Stacktraces
org.springframework.dao.InvalidDataAccessResourceUsageException: could not insert: [com.gxwz.entity.GxUser]; SQL [insert into 107gxwz.dbo.gx_user (UName, UPwd, UGender, UEmal, URole, UHead, URegDate, ULastLogin, ULastEmit, UPermit, UMobile, UUploadFilesIDs, UDownLoadFileIDs, UUrl, UTopicIDs, URevertIDs) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: could not insert: [com.gxwz.entity.GxUser] 
    org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:629)
    org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
    org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
    org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
    org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:683)
    com.gxwz.dao.impl.UserDaoImpl.add(UserDaoImpl.java:30)
    com.gxwz.service.impl.UserServiceImpl.add(UserServiceImpl.java:35)
    com.gxwz.action.UserAction.addUser(UserAction.java:47)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:606)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
    com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
    com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
    org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:223)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:107)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:75)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:934)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:90)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:494)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:632)
    org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:281)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2248)
    org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2237)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    java.lang.Thread.run(Thread.java:724)sql servermyeclipsehibernatespringstruts2

解决方案 »

  1.   

    --------------------------------------------------------------------------------
    相关配置文件如下:
    我用了Myeclipse hibernate逆向工程生成映射文件
    GxUser.hbm.xml<hibernate-mapping>
        <class name="com.gxwz.entity.GxUser" table="gx_user" schema="dbo" catalog="107gxwz">
            <id name="uid" type="java.lang.Integer">
                <column name="UId" />
                <generator class="native"></generator>
            </id>
            <property name="uname" type="java.lang.String">
                <column name="UName" length="20" not-null="true" />
            </property>
            <property name="upwd" type="java.lang.String">
                <column name="UPwd" length="20" not-null="true" />
            </property>
            <property name="ugender" type="java.lang.String">
                <column name="UGender" length="4" not-null="true" />
            </property>
            <property name="uemal" type="java.lang.String">
                <column name="UEmal" length="50" not-null="true" />
            </property>
            <property name="urole" type="java.lang.Integer">
                <column name="URole" not-null="true" />
            </property>
            <property name="uhead" type="java.lang.String">
                <column name="UHead" length="50" />
            </property>
            <property name="uregDate" type="java.sql.Timestamp">
                <column name="URegDate" length="23" />
            </property>
            <property name="ulastLogin" type="java.sql.Timestamp">
                <column name="ULastLogin" length="23" />
            </property>
            <property name="ulastEmit" type="java.sql.Timestamp">
                <column name="ULastEmit" length="23" />
            </property>
            <property name="upermit" type="java.lang.Integer">
                <column name="UPermit" />
            </property>
            <property name="umobile" type="java.lang.String">
                <column name="UMobile" length="20" />
            </property>
            <property name="uuploadFilesIds" type="java.lang.String">
                <column name="UUploadFilesIDs" length="200" />
            </property>
            <property name="udownLoadFileIds" type="java.lang.String">
                <column name="UDownLoadFileIDs" length="200" />
            </property>
            <property name="uurl" type="java.lang.String">
                <column name="UUrl" length="50" />
            </property>
            <property name="utopicIds" type="java.lang.String">
                <column name="UTopicIDs" length="500" />
            </property>
            <property name="urevertIds" type="java.lang.String">
                <column name="URevertIDs" length="500" />
            </property>
        </class>
    </hibernate-mapping>
    --------------------------------------------------------------------------------
    Hibernate 配置文件如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
        "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <!--  hibernate配置开始  -->
    <beans>
    <!-- 数据源注入session工厂 -->
    <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="hibernate.hbm2ddl.auto">update</prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>com/gxwz/entity/GxUser.hbm.xml</value>
    </list>
    </property> </bean> <!-- 配置数据库连接池开始-->
    <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=107gxwz">
    </property>
    <property name="username" value="sa"></property>
    <property name="password" value="root"></property>
    </bean>
    <!-- 配置数据库连接池结束--> <!-- 声明事物管理器 -->
    <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
    </bean> <bean id="jdbcExceptionTranslator"
    class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">
    <property name="dataSource" ref="dataSource" />
    </bean>
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
    <property name="sessionFactory">
    <ref local="sessionFactory" />
    </property>
    <property name="jdbcExceptionTranslator" ref="jdbcExceptionTranslator" />
    </bean>
    </beans>跪求指点一二。。
      

  2.   

     <class name="com.gxwz.entity.GxUser" table="gx_user" schema="dbo" catalog="107gxwz">把catalog="107gxwz"删了。
      

  3.   

    已经解决! 之前在网上也找到相同的回答 我去掉的是hibernate.reveng.xml中的catalog="107gxwz" 而不是GxUser.hbm.xml里面的catalog="107gxwz"!  啊,烦恼了几天的问题终于解决了! 
    非常感谢!!!!