报错的是这样的
Method “findAll” failed for object cn.Express.web.action.BasesAction@1f8b7ab7
gnl.MethodFailedException: Method "findAll" failed for object cn.Express.web.action.BasesAction@1f8b7ab7 [java.lang.StackOverflowError]
ognl的错倒是很常见了,这个错误的原因可以看出来是内存溢出,这种情况,分析一下应该是某个方法仿佛调用 ,而在项目中大多是实体类的toString 方法并且实体类之间有多对一,一对多关系,造成方法互相反复调用。
解决方法:把实体类重写的toString方法中一对多的删除即可,或者只打印一部分内容,如下:
@Override
public String toString() {
return "Base [bid=" + bid + ", product=" + product.getAddress() + ", user=" + user.getUsername() + "]";
}

本文分析了在项目中遇到的ognl.MethodFailedException错误,该错误通常由于实体类之间的循环引用导致内存溢出。文章提供了具体的解决方案,即修改实体类的toString方法,避免一对多关系的无限递归调用。
3367

被折叠的 条评论
为什么被折叠?



