论坛首页 Java企业应用论坛

关于Tomcat奇怪的问题,困扰好几天了!

浏览 14966 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2015-01-16  
网站的Web容器用的Tomcat(64位),jdk1.7,mysql5.6,在执行一个很简单的查询方法时,所有逻辑执行完成,没有任何问题。当跳出方法进入spring 事物提交时,报NullPointerException,这个异常貌似是由Invocationtargetexception引起的。然后关闭Tomcat,我把work下的缓存文件删除,重启tomcat就恢复正常了。但是有时候再次重启tomcat后这个问题就又出现了,有人遇到过这个问题吗?究竟是代码的问题,还是Tomcat的问题?

异常信息:
java.lang.NullPointerException
at org.hibernate.type.EntityType.isEqual(EntityType.java:344)
at org.hibernate.type.ComponentType.isEqual(ComponentType.java:176)
at org.hibernate.engine.CollectionKey.equals(CollectionKey.java:71)
at java.util.HashMap.put(HashMap.java:496)
at org.hibernate.engine.StatefulPersistenceContext.addCollection(StatefulPersistenceContext.java:820)
at org.hibernate.engine.StatefulPersistenceContext.addUninitializedCollection(StatefulPersistenceContext.java:789)
at org.hibernate.type.CollectionType.getCollection(CollectionType.java:643)
at org.hibernate.type.CollectionType.resolveKey(CollectionType.java:431)
at org.hibernate.type.CollectionType.resolve(CollectionType.java:425)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:982)
at org.hibernate.loader.Loader.doQuery(Loader.java:857)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
at org.hibernate.loader.Loader.doList(Loader.java:2542)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
at org.hibernate.loader.Loader.list(Loader.java:2271)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:459)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:365)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at com.trustsaving.common.base.dao.BaseDao$3.doInHibernate(BaseDao.java:127)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:407)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:344)
at com.trustsaving.common.base.dao.BaseDao.find(BaseDao.java:121)
at com.trustsaving.MemberMoudle.dao.impl.MemberInfoDaoImpl.queryMemberListBySysFlag(MemberInfoDaoImpl.java:187)
at com.trustsaving.MemberMoudle.service.impl.MemberInfoServiceImpl.queryMemberListBySysFlag(MemberInfoServiceImpl.java:263)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at com.sun.proxy.$Proxy111.queryMemberListBySysFlag(Unknown Source)
at com.trustsaving.Product.action.ProductAction.getVirtualUsers(ProductAction.java:909)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:685)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:919)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:851)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:953)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:829)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.trustsaving.Filter.action.SessionFilter.doFilter(SessionFilter.java:34)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:232)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
   发表时间:2015-01-16  
是不是没有重写equal方法
0 请登录后投票
   发表时间:2015-01-17  
wushipan_easy 写道
是不是没有重写equal方法

?能说的具体点吗?哪里需要重写equal??
0 请登录后投票
   发表时间:2015-01-19  
看看你MemberInfoServiceImpl.queryMemberListBySysFlag 这个方法的参数有没有问题,你只是查询不用走事务的,然后看看SessionFilter
0 请登录后投票
   发表时间:2015-01-19  
看看basedao.java,find方法121行,能查出数据吗?
0 请登录后投票
   发表时间:2015-01-22  
只能说你没看错误了,很多人都直接忽略错误,而仅靠自己的猜测是解决问题,这种方式是不对的,但还是有很多人这样。看错误的方式是
先看报错的主内容比如说:NullPointException,ParseException 等等,先知道是什么错,知道报的什么错,就知道错误类型了。如果这个时候你已经想到了问题所在,那么就去解决问题,再测试,如果不能确定,再住下。
从错误信息开始,从上住下找到自己的代码,看最近的一行,找到问题代码。
根据错误信息和问题代码,找到问题所在。


如果你还不能确定问题,你可能需要把这个错误信息上google(baidu)搜索一下;
如果你还不能确定问题,你可能需要把这个问题的影响因素去掉,逐一排查,比如写main方法单向测试(如果项目条件允许的话)。
如果你还不能确定问题,你可能需要问你旁边的人。
如果你还不能确定问题,你可能需要转换工作焦点到其他事情上,待一段时间后再来解决此问题。
如果你还不能确定问题,你可能要意识到你需要补充你的知识库了(官方文档就是个不错的选择)。

此外,debug 也是个不错的方法,但需要视情况而定,根据问题需要你自己判断,是否需要 debug。
此外,网站提问也是个方法(此处我不评价该方法的好坏),但你还是要有一定的自行解决问题的能力。

每个人都有自己的一套行这有效的解决问题的方法,不一定大家都是这样,但解决问题需要逻辑,不是遇到问题就问,这是不对的。

可以说你提出的问题,大部份的人给你的答案是,你看看 某某类,的多少行,看这句话有什么问题,但这并不能解决你的问题,因为大家不知道你的代码,不知道你的环境,不知道你的数据情况,无法给出肯定的回答。你还是需要结合问题检查你的代码。

希望对你有帮助,也希望你学而常思之。
1 请登录后投票
   发表时间:2015-01-22  
li17230 写道
只能说你没看错误了,很多人都直接忽略错误,而仅靠自己的猜测是解决问题,这种方式是不对的,但还是有很多人这样。看错误的方式是
先看报错的主内容比如说:NullPointException,ParseException 等等,先知道是什么错,知道报的什么错,就知道错误类型了。如果这个时候你已经想到了问题所在,那么就去解决问题,再测试,如果不能确定,再住下。
从错误信息开始,从上住下找到自己的代码,看最近的一行,找到问题代码。
根据错误信息和问题代码,找到问题所在。


如果你还不能确定问题,你可能需要把这个错误信息上google(baidu)搜索一下;
如果你还不能确定问题,你可能需要把这个问题的影响因素去掉,逐一排查,比如写main方法单向测试(如果项目条件允许的话)。
如果你还不能确定问题,你可能需要问你旁边的人。
如果你还不能确定问题,你可能需要转换工作焦点到其他事情上,待一段时间后再来解决此问题。
如果你还不能确定问题,你可能要意识到你需要补充你的知识库了(官方文档就是个不错的选择)。

此外,debug 也是个不错的方法,但需要视情况而定,根据问题需要你自己判断,是否需要 debug。
此外,网站提问也是个方法(此处我不评价该方法的好坏),但你还是要有一定的自行解决问题的能力。

每个人都有自己的一套行这有效的解决问题的方法,不一定大家都是这样,但解决问题需要逻辑,不是遇到问题就问,这是不对的。

可以说你提出的问题,大部份的人给你的答案是,你看看 某某类,的多少行,看这句话有什么问题,但这并不能解决你的问题,因为大家不知道你的代码,不知道你的环境,不知道你的数据情况,无法给出肯定的回答。你还是需要结合问题检查你的代码。

希望对你有帮助,也希望你学而常思之。


1.你怎么知道我没有分析过代码逻辑?
2.你怎么知道我没有baidi google过
3.旁边的人也好,朋友也好我都寻求过帮助
你怎么断定我是遇到问题没有分析过,就直接上来问的???  
这个平台本来就是大家交流用的,遇到问题能用办法都用了,能分析的都分析了。能力有限,我来寻求帮助有什么问题吗?
0 请登录后投票
   发表时间:2015-01-22  
这个异常是你代码引起的,肯定是你代码问题啊
at com.trustsaving.common.base.dao.BaseDao.find(BaseDao.java:121)
at com.trustsaving.MemberMoudle.dao.impl.MemberInfoDaoImpl.queryMemberListBySysFlag(MemberInfoDaoImpl.java:187)
at
....

曾经我无数次怀疑是不是系统问题,是不是服务器问题,是不是数据库问题 但无数次结果告诉我,都是自己的问题
0 请登录后投票
   发表时间:2015-01-22  
另外一个问题是,你能不能DEBUG一下看看到底是哪个对象为NULL 导致的null point?
0 请登录后投票
   发表时间:2015-01-23  
   <#list pluinlist as system>
<@getPluginHtml pluginid =system.expType tasklist=system.yerExpBillList fieldlist=system.fieldPropertiesList></@getPluginHtml>
</#list>
</#if>
</div>
<#macro getPluginHtml pluginid tasklist fieldlist>
<div id="expquery_div_${pluginid}" class="extend" style="width:650px;height:${tasklist?size*24+31}px">
<table cellspacing="0" id="expquerytable${pluginid}" cellpadding="0" style="color:#4D4D4D; height:31px;width:650px;" class="headerdiv">
  <tbody><tr>
   <#if fieldlist??>
    <#if fieldlist?size gt 0>
    <#list fieldlist as field>
    <#if field.isShow="true">
<td><div class="tempDiv" name="autowid" id="${field.fieldName}${pluginid}" style="width: 80px;">
<div title=${field.fieldName}>${field.title}</div></div></td>
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics