我用struts2 + spring + hibernate开发中
我把我的log4j配置文件的log4j.rootLogger=debug, stdout 设为debug
然后我去存一个对象的时候(用的是struts2 + spring + hiberate)居然控制台里打印错误信息,我的对象也存入数据库了
,然后我把log4j设为error级别的时候,就不打印错误信息了,对象也能存入数据库,打印的错误信息如下,望高手帮忙解决!!!小弟不胜感激
17:50:19,562 DEBUG NewPooledConnection:294 - A Throwable occurred while trying to reset the typeMap property of our Connection to Collections.EMPTY_MAP!
com.microsoft.sqlserver.jdbc.SQLServerException: 不支持此操作。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.NotImplemented(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.setTypeMap(Unknown Source)
at com.mchange.v2.c3p0.impl.NewPooledConnection.reset(NewPooledConnection.java:290)
at com.mchange.v2.c3p0.impl.NewPooledConnection.ClosedProxyConnection(NewPooledConnection.java:247)
at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:1148)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.closeConnection(LocalDataSourceConnectionProvider.java:95)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:451)
at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:385)
at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:324)
at org.hibernate.impl.SessionImpl.close(SessionImpl.java:298)
at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:774)
at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:760)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:400)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:632)
at com.makefutrue.haobai.company.base.dao.CompanyBaseInfoDAO.save(CompanyBaseInfoDAO.java:31)
at com.makefutrue.haobai.company.base.biz.CompanyBaseInfoBiz.addCompany(CompanyBaseInfoBiz.java:13)
at com.makefutrue.haobai.company.base.action.CompanyAction.addCompany(CompanyAction.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

解决方案 »

  1.   

    log4j配置文件中的debug,info,error,warn  是有先后级别的。出现的处理信息也会不同。查一哈。顶啦
      

  2.   

    是不是出现了中间日志转换文件jar包你没有加入,Eclipse默认的日志jar包不是log4j。java中间java包
      

  3.   

    java与SQL Server结合的悲剧,真是门不当户不对啊。再用下去,会发现越来越多的问题。
    这个问题么,猜想,SQL Server的驱动程序使用了log4j,并且在你看到的地方(Unknown Source,没源代码,所以只能猜测)捕获并记录了一个异常(居然是以debug或者什么级别而不是error级别记录的)。之后么,它才再次抛出异常(也可能根本没再理睬这个异常,谁知道呢,微软的作风就是这样,不鸟你),所以会出现这个情况。
    再次提醒注意,以上纯属猜想。