环境变量里我配置了JAVA_OPTS=-Xms128m -Xmx1500m 。我又是分页查询。所以问题应该不是内存真的不够用。
帮个忙吧。着急呀。
===========================================
exception java.lang.reflect.InvocationTargetException
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:434)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause java.lang.OutOfMemoryError: Java heap space
java.lang.StringCoding$StringDecoder.decode(Unknown Source)
java.lang.StringCoding.decode(Unknown Source)
java.lang.String.<init>(Unknown Source)
com.mysql.jdbc.ResultSetRow.getString(ResultSetRow.java:795)
com.mysql.jdbc.BufferRow.getString(BufferRow.java:542)
com.mysql.jdbc.ResultSetImpl.getStringInternal(ResultSetImpl.java:5693)
com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5570)
com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5610)
com.mchange.v2.c3p0.impl.NewProxyResultSet.getString(NewProxyResultSet.java:3342)
org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61)
org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)
org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229)
org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:330)
org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2283)
org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
org.hibernate.loader.Loader.getRow(Loader.java:1355)
org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
org.hibernate.loader.Loader.doQuery(Loader.java:829)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
org.hibernate.loader.Loader.doList(Loader.java:2533)
org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
org.hibernate.loader.Loader.list(Loader.java:2271)
org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:119)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1716)
org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:347)
com.cspush.dao.PointDao$2.doInHibernate(PointDao.java:84)
com.cspush.dao.PointDao$2.doInHibernate(PointDao.java:1)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)

解决方案 »

  1.   

    配置了呀。给你看看<hibernate-configuration>
    <session-factory>
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/csspider</property>
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
    <!-- c3p0 -->
    <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider
    </property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.timeout">120</property>
    <property name="hibernate.c3p0.max_statements">100</property>
    <property name="hibernate.c3p0.idle_test_period">120</property>
    <property name="hibernate.c3p0.acquire_increment">2</property>
    <!-- others -->
    <property name="show_sql">true</property>
    <property name="connection.autocommit">true</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
    <mapping resource="com/csspider/domain/City.hbm.xml"/>
    <mapping resource="com/csspider/domain/Continet.hbm.xml"/>
    <mapping resource="com/csspider/domain/Country.hbm.xml"/>
    <mapping resource="com/csspider/domain/DataType.hbm.xml"/>
    <mapping resource="com/csspider/domain/Province.hbm.xml"/>
    <mapping resource="com/csspider/domain/Userinfo.hbm.xml"/>
    <mapping resource="com/cspush/domain/Point.hbm.xml"/>
    <mapping resource="com/cspush/domain/CacheList.hbm.xml"/>
    <mapping resource="com/csspider/domain/SubmitPoint.hbm.xml"/>
    <mapping resource="com/csspider/domain/Problem.hbm.xml"/>
    <mapping resource="com/csspider/domain/SubmitPointPic.hbm.xml"/>
    </session-factory>
    </hibernate-configuration>
      

  2.   

    怎么办呢。我不知道如何解决了。和mysql的 事务性有关系没呀。
    最早项目是在linux中写的。安装的mysql默认 不知道有没有事务
    后来我到windows中,安装mysql我选择的有事务性的。
      

  3.   

    弟兄们~我找到问题了。是数据库的数据有乱码。
    我的sql文件时utf8的编码好着。
    但是 mysql -uroot -proot test < sql.sql
    就导入成乱码了。
    status;查看4项都是utf8
      

  4.   

    上面那个乱码问题。只是一部分。
    我发现问题还没有解决。现在彻底把问题解决了。
    却是是内存不够的问题。
    答案见博客。就当做一个推广吧。
    http://www.itrufeng.com/invocationtargetexception-outofmemoryerror.html
      

  5.   

    hibernate的懒加载的问题,在struts.xml配置文件配置下就可以,可以看我博客
      

  6.   

    恩,hibernate的懒加载确实站很大的原因。
      

  7.   

    你可以把tomcat的JVM内存调大一点的。-Xms256m -Xmx512m -XX:PermSize=512m -XX:MaxPermSize=1024m
      

  8.   

    Java heap space
    这个内存溢出确实是内存不够用。分页查询也得看你查询的对象是什么。比如查询新闻表,新闻内容可能是个超长字符串,作为列表加载到内存中,很可能内存不够用。你可以配置一下,让这个列延迟加载,或者干脆把内容字段分离出这个表,单独建立个文章内容表。原因就是这个。
    还有那个OpenSessionInViewFilter,在需要比较高性能的系统中,这个最好别用,手动用hql加载lazy的字段。