读书人

java.lang.reflect.InvocationTargetE

发布时间: 2012-02-20 21:18:24 作者: rapoo

java.lang.reflect.InvocationTargetException急救
在导出数据到excel的时候报的异常。
在本地运行没有错误,但是在线上却报异常了,如下:
java.lang.reflect.InvocationTargetException
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 org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.onevr.gdrct.web.filter.EncodingFilter.doFilter(EncodingFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:216)
at oracle.jdbc.driver.CharCommonAccessor.getString(CharCommonAccessor.java:384)
at oracle.jdbc.driver.T4CVarcharAccessor.getString(T4CVarcharAccessor.java:410)
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:396)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1514)
at org.hibernate.type.StringType.get(StringType.java:18)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:1899)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1372)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1300)
at org.hibernate.loader.Loader.getRow(Loader.java:1197)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:569)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)


at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at com.onevr.gdrct.dao.impl.user.UserInfoDaoImpl.findListByHQL(UserInfoDaoImpl.java:562)
at com.onevr.gdrct.web.servlet.user.StuManageAction.EXLStuManage(StuManageAction.java:454)
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 org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)

[解决办法]
Caused by: java.lang.OutOfMemoryError: Java heap space
检查下服务器的内存吧。
[解决办法]
java.lang.OutOfMemoryError
内在溢出?

加大点试试。
[解决办法]
你把大量从数据库中查出来的数据加载到 List 或者 Map 中去了,导致 JVM 无法再分配可用内存了。
[解决办法]
java.util.Arrays.copyOfRange(Arrays.java:3209)
定时释放list
[解决办法]
java.lang.OutOfMemoryError
多半不是内存小的原因,检查下你存放数据的容器(如LIST),当然也应及时释放空间

[解决办法]
tomcat

Java code
解决方法:方法:加大TOMCAT可利用内存:  在TOMCAT的目录下,也就是在TOMCAT41/bin/catalina.bat文件最前面加入  set JAVA_OPTS=-Xms800m -Xmx800m  表现效果是当你启动TOMCAT时,系统内存会增加近800M使用操作方法:  1)、先关掉WINDOWS服务当中的TOMCAT4服务。  2)、再找到TOMCAT/BIN目录下startup.bat,双击打开它,你会发现现WINDOWS内存占用会增加近800M。  3)、执行程序,因为是TOMCAT重新编译程序,所以第一次会比较慢。
[解决办法]
晕,这个异常就是内存溢出。
试试分页导出,别一下导那么多数据吧。

探讨
java.lang.OutOfMemoryError
多半不是内存小的原因,检查下你存放数据的容器(如LIST),当然也应及时释放空间


[解决办法]
探讨
晕,这个异常就是内存溢出。
试试分页导出,别一下导那么多数据吧。

引用:
java.lang.OutOfMemoryError
多半不是内存小的原因,检查下你存放数据的容器(如LIST),当然也应及时释放空间



[解决办法]
Caused by: java.lang.OutOfMemoryError: Java heap space
内存溢出

应该是从数据库中查询出来的数据量太大,
你可以试试批量进行Excel插入:就是每次查询100条记录或者更多插入Excel
[解决办法]
Java code
Caused by: java.lang.OutOfMemoryError: Java heap space 

读书人网 >Java Web开发

热点推荐