1.
root cause
java.lang.NoClassDefFoundError: Could not initialize class dao.HibernateUtil service.RcGroupService.getAllRecommandGrps(RcGroupService.java:32) view.GroupController.getReCommandGroups(GroupController.java:29) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)--检查项:服务器开启,数据库启动,查询数据可以。
--原因:没有配置hibernate.cfg.xml没有配好。
配置如下,就OK了。
2.
root cause
org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 64; 元素类型为 "class" 的内容不完整, 它必须匹配 "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)"。 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396) com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284) com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1994) com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:769) com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:357)检查要查询的表的**.hbm.xml发现没有问题,然后又去排查所有注册的hbm.xml文件,发现其中一个文件的<class>确实了结束符 </class>
以下是个例子
3.
root cause
org.hibernate.HibernateException: Unable to make JDBC Connection [jdbc:derby:spring_hibernate_2] org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:77) org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106) org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89) org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206) org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178) org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260) org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94) org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:89) org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:206) org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178) org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885) org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843) org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928) dao.HibernateUtil.<clinit>(HibernateUtil.java:18) service.RcGroupService.getAllRecommandGrps(RcGroupService.java:32) view.GroupController.getReCommandGroups(GroupController.java:29)看错误信息是connection不上,url是从网上拷贝的,还没改成自己的本地数据库,
修改为:
4.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.HibernateException: No CurrentSessionContext configured! org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
org.hibernate.HibernateException: No CurrentSessionContext configured! org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1011) dao.HibernateUtil.getSession(HibernateUtil.java:32) service.RcGroupService.getAllRecommandGrps(RcGroupService.java:32) view.GroupController.getReCommandGroups(GroupController.java:29) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214) org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
用的是sessionFactory.getCurrentSession()。网上查了一下,说是要在hibernate.cfg.xml里配置个东西<property name="current_session_context_class">jta</property>
5.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.HibernateException: No TransactionManagerLookup specified org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
org.hibernate.HibernateException: No TransactionManagerLookup specified org.hibernate.context.internal.JTASessionContext.currentSession(JTASessionContext.java:85) org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1013) dao.HibernateUtil.getSession(HibernateUtil.java:32) service.RcGroupService.getAllRecommandGrps(RcGroupService.java:32) view.GroupController.getReCommandGroups(GroupController.java:29) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
跟错误4一样,刚刚网上查的,是在集成Hibernate的环境里,用<property name="current_session_context_class">jta</property>,但是在没有集成hibernate的环境下用<property name="current_session_context_class">thread</property>
修改为:
6.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.HibernateException: getNamedQuery is not valid without active transaction org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause
org.hibernate.HibernateException: getNamedQuery is not valid without active transaction org.hibernate.context.internal.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:352) com.sun.proxy.$Proxy486.getNamedQuery(Unknown Source) service.RcGroupService.getAllRecommandGrps(RcGroupService.java:33) view.GroupController.getReCommandGroups(GroupController.java:29) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:498) org.springframework.web.method.support.InvocableHandle
说我没有开启事务,难道select也要事务?加上seesiom.beginTransaction ,查询后commit,就OK了。
-----------------------图片怎么都没了。。。。。。
补充:
hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.apache.derby.jdbc.ClientDriver</property>
<property name="connection.url">jdbc:derby://localhost:1527/sample</property>
<property name="connection.username">app</property>
<property name="connection.password">app</property>
<property name="connection.pool_size">2</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="show_sql">true</property>
<property name="current_session_context_class">thread</property>
<mapping resource="beanconfig/RcGroup.hbm.xml"/>
<mapping resource="beanconfig/RcSubscriber.hbm.xml"/>
<!-- <mapping resource="beanconfig/RcArtical.hbm.xml"/>-->
</session-factory>
</hibernate-configuration>
其中一个表映射
<hibernate-mapping>
<class name="value.RcGroup" table="rc_group"
dynamic-insert="false" dynamic-update="false"
mutable="true" optimistic-lock="version"
polymorphism="implicit" select-before-update="false">
<id name="groupId" column="GROUP_ID" type="java.lang.Integer">
<generator class="identity"/>
</id>
<property name="groupName" column="GROUP_NAME" type="java.lang.String" length="50" not-null="true"></property>
<property name="groupDesc" column="GROUP_DESC" type="java.lang.String"></property>
<property name="effDate" column="EFF_DATE" type="java.util.Date" not-null="true"></property>
<property name="remark" column="REMARK" type="java.lang.String"></property>
</class>
<sql-query name="QUERY_RCGROUP_GETALLGROUP_BY_GROUPIDLIST">
<return alias="t" class="value.RcGroup"></return>
<![CDATA[
SELECT
group.GROUP_ID AS {t.groupId},
group.GROUP_NAME AS {t.groupName},
group.GROUP_DESC AS {t.groupDesc},
group.EFF_DATE AS {t.effDate},
group.REMARK AS {t.remark}
FROM
RC_GROUP group
ORDER BY group.EFF_DATE DESC
]]>
</sql-query>
</hibernate-mapping>
7.
root cause
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.view.ContentNegotiatingViewResolver#0' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Cannot create inner bean 'org.springframework.web.servlet.view.json.MappingJacksonJsonView#3d7aa314' of type [org.springframework.web.servlet.view.json.MappingJacksonJsonView] while setting bean property 'defaultViews' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.view.json.MappingJacksonJsonView#3d7aa314' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.servlet.view.json.MappingJacksonJsonView]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:282) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:121) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:351) org.springframework.beans.factory.support.BeanDe
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.view.json.MappingJacksonJsonView#3d7aa314' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.servlet.view.json.MappingJacksonJsonView]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1021) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) org.springfram
org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.web.servlet.view.json.MappingJacksonJsonView]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164) org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) or
java.lang.NoClassDefFoundError: org/codehaus/jackson/map/ObjectMapper org.springframework.web.servlet.view.json.MappingJacksonJsonView.<init>(MappingJacksonJsonView.java:65) sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) sun.
前段时间返回json数据还OK的,今天怎么不行了。后来发现,之前引入的json的几个jar包都不在lib下了,重新引入,又OK了。