java.lang.exceptionStackOverFlowError 怎么解决 具体点

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)  今天在整合ssh项目中,碰到一个异常,当我提交购物车数据到订单时,浏览器报了一个这样的异常.
  当时,我就吓坏了.尼玛,这不是内存溢出了吗?吓得我赶紧去检查了每一个有遍历语句的代码,结果没有发现一个死循环,折腾了两个多小时,最后终于发现了问题,简直让人抓狂,原因竟然是我在实体类,order(订单),orderItem(订单项)中都重写了ToString()方法.请看:
OrderItem.java:
package com.wang.shop.order.
import com.wang.shop.goods.entity.G
public class OrderItem {
private Integer itemId;//订单项Id
private I//商品数量
private double//商品总价格
//订单项中的商品
//订单项所属的订单
//get/set方法省略
public String toString() {
return "OrderItem [itemId=" + itemId + ", count=" + count + ", total="
+ total + ", goods=" + goods + ", order=" + order + "]";
Order.java:
package com.wang.shop.order.
import java.util.D
import java.util.HashS
import java.util.S
import com.wang.shop.user.entity.U
* 订单实体
* @author Administrator
public class Order {
private Integer orderId;//订单Id
private S//收货人姓名
private S//收货地址
private S//收货人电话
private String postN//邮编
private double allT
private Date orderD//订单创建日期
//订单所属的用户
U//所有用户
//订单里面的多个订单项
private Set&OrderItem& orderItems=new HashSet&OrderItem&();
//get/set方法省略
public String toString() {
return "Order [orderId=" + orderId + ", name=" + name + ", address="
+ address + ", tel=" + tel + ", postNum=" + postNum
+ ", allTotal=" + allTotal + ", orderDate=" + orderDate
+ ", user=" + user + ", orderItems=" + orderItems + "]";
请注意!请注意!请注意! 在order类中我有一个set集合的属性,value正好是orderItem,而我又重写了OrderItem的ToString方法,于是乎,当代码执行:
  System.out.println("order:"+order);或者System.out.println("orderItem:"+orderItem);
  的时候,程序打印Order时,会打印OrderItem,打印OrderItem时,会打印Order,如果反复,无限循环~~~~~最后,啪叽,内存溢出.这个错误有点让人哭笑不得,第一次遇到,真是然我手足无措,立碑如此,切勿再犯.
阅读(...) 评论()Spring配置出错问题java.lang.StackOverflowError,各位帮忙看看吧 - ITeye问答
1.打印出来的出错原因:
HTTP Status 500 -
________________________________________
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/esbmonitor' defined in ServletContext resource [/WEB-INF/spring/esbcapabilityContext.xml]: Error set nested exception is org.springframework.beans.PropertyBatchUpdateE nested PropertyAccessExceptions (2) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'esbcapabilityService' nested exception is java.lang.StackOverflowError
PropertyAccessException 2: org.springframework.beans.MethodInvocationException: Property 'esbcapabilityService1' nested exception is java.lang.StackOverflowError
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.zhxjz.esb.web.filter.LoginFilter.doFilter(LoginFilter.java:95)
root cause
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/esbmonitor' defined in ServletContext resource [/WEB-INF/spring/esbcapabilityContext.xml]: Error set nested exception is org.springframework.beans.PropertyBatchUpdateE nested PropertyAccessExceptions (2) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'esbcapabilityService' nested exception is java.lang.StackOverflowError
PropertyAccessException 2: org.springframework.beans.MethodInvocationException: Property 'esbcapabilityService1' nested exception is java.lang.StackOverflowError
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1344)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:309)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1048)
org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:127)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:109)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.zhxjz.esb.web.filter.LoginFilter.doFilter(LoginFilter.java:95)
root cause
org.springframework.beans.PropertyBatchUpdateE nested PropertyAccessExceptions (2) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'esbcapabilityService' nested exception is java.lang.StackOverflowError
PropertyAccessException 2: org.springframework.beans.MethodInvocationException: Property 'esbcapabilityService1' nested exception is java.lang.StackOverflowError
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:102)
org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1341)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1067)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:511)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:309)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1048)
org.springframework.web.struts.DelegatingActionProxy.getDelegateAction(DelegatingActionProxy.java:127)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:109)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.zhxjz.esb.web.filter.LoginFilter.doFilter(LoginFilter.java:95)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
________________________________________
Apache Tomcat/6.0.35
2.Spring配置文件:
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"&
&bean name="/esbmonitor" class="com.zhxjz.esb.web.action.SystemMonitorAction" scope="prototype" &
&!-- 在此注入服务层 ,可引入多个--&
&property name="esbcapabilityService"&
&ref bean="esbcapabilityService" /&
&/property&
&property name="esbcapabilityService1"&
&ref bean="esbcapabilityService1" /&
&/property&
&bean id="esbcapabilityServiceTarget"
class="com.zhxjz.esb.web.service.impl.EsbCapabilityServiceImpl"&
&property name="daoUtil"&
&ref bean="daoUtil" /&
&/property&
&bean id="esbcapabilityServiceTarget1"
class="com.zhxjz.esb.web.service.impl.EsbCapabilityServiceImpl"&
&property name="daoUtil"&
&ref bean="daoUtil1" /&
&/property&
&bean id="esbcapabilityService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&
&!-- 如果没有DAO接口,需要以下配置 --&
&!--
&property name="proxyTargetClass"&--&
&!--
&value&true&/value&--&
&!--
&/property&--&
&property name="transactionManager"&
&ref bean="myTransactionManager" /&
&/property&
&property name="target"&
&ref local="esbcapabilityServiceTarget" /&
&/property&
&property name="transactionAttributes"&
&prop key="*"&PROPAGATION_REQUIRED,-MyDataException&/prop&
&/property&
&bean id="esbcapabilityService1"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"&
&!-- 如果没有DAO接口,需要以下配置 --&
&!--
&property name="proxyTargetClass"&--&
&!--
&value&true&/value&--&
&!--
&/property&--&
&property name="transactionManager"&
&ref bean="myTransactionManager1" /&
&/property&
&property name="target"&
&ref local="esbcapabilityServiceTarget1" /&
&/property&
&property name="transactionAttributes"&
&prop key="*"&PROPAGATION_REQUIRED,-MyDataException&/prop&
&/property&
请各位大侠帮菜小弟看看吧,实在是不知道错在哪里呀,正儿八经的急得很哦,在这先谢谢啦!同祝圣诞快乐哦各位亲~
把EsbCapabilityServiceImpl代码贴出来,你是不是方法自己调自己了,导致栈溢出
Property 'esbcapabilityService' nested exception is java.lang.StackOverflowError
看看是不是esbcapabilityService这个bean有问题
建议先clear下重新编译运行试试
Error creating bean with name '/esbmonitor' defined in ServletContext resource [/WEB-INF/spring/esbcapabilityContext.xml]
已解决问题
未解决问题

我要回帖

更多关于 java.lang.object 的文章

 

随机推荐