相关文章推荐
神勇威武的弓箭  ·  PostgreSQL ...·  4 月前    · 
酷酷的围巾  ·  node.js - How to fix ...·  1 年前    · 

内部类无法序列化

  • Action 向页面传输时,定义 Action 内部的 VO 类,无法传输
  • MyBatis 调用 Mapper 接口,传入List 集合,List = subList 的提示如下异常

Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘orderIdList != null and orderIdList.size() > 0’.
Cause: org.apache.ibatis.ognl.MethodFailedException:
Method “size” failed for object [2590]
[java.lang.IllegalAccessException:
Class org.apache.ibatis.ognl.OgnlRuntime can not access a member of class java.util.ArrayList SubList with modifiers "public"] at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:50) at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32) at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:33) at org.apache.ibatis.scripting.xmltags.ChooseSqlNode.apply(ChooseSqlNode.java:34) at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32) at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:40) at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:278) at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:75) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:108) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:102) at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.mybatis.spring.SqlSessionTemplate S u b L i s t w i t h m o d i f i e r s " p u b l i c " ] a t o r g . a p a c h e . i b a t i s . s c r i p t i n g . x m l t a g s . O g n l C a c h e . g e t V a l u e ( O g n l C a c h e . j a v a : 5 0 ) a t o r g . a p a c h e . i b a t i s . s c r i p t i n g . x m l t a g s . E x p r e s s i o n E v a l u a t o r . e v a l u a t e B o o l e a n ( E x p r e s s i o n E v a l u a t o r . j a v a : 3 2 ) a t o r g . a p a c h e . i b a t i s . s c r i p t i n g . x m l t a g s . I f S q l N o d e . a p p l y ( I f S q l N o d e . j a v a : 3 3 ) a t o r g . a p a c h e . i b a t i s . s c r i p t i n g . x m l t a g s . C h o o s e S q l N o d e . a p p l y ( C h o o s e S q l N o d e . j a v a : 3 4 ) a t o r g . a p a c h e . i b a t i s . s c r i p t i n g . x m l t a g s . M i x e d S q l N o d e . a p p l y ( M i x e d S q l N o d e . j a v a : 3 2 ) a t o r g . a p a c h e . i b a t i s . s c r i p t i n g . x m l t a g s . D y n a m i c S q l S o u r c e . g e t B o u n d S q l ( D y n a m i c S q l S o u r c e . j a v a : 4 0 ) a t o r g . a p a c h e . i b a t i s . m a p p i n g . M a p p e d S t a t e m e n t . g e t B o u n d S q l ( M a p p e d S t a t e m e n t . j a v a : 2 7 8 ) a t o r g . a p a c h e . i b a t i s . e x e c u t o r . C a c h i n g E x e c u t o r . q u e r y ( C a c h i n g E x e c u t o r . j a v a : 7 5 ) a t o r g . a p a c h e . i b a t i s . s e s s i o n . d e f a u l t s . D e f a u l t S q l S e s s i o n . s e l e c t L i s t ( D e f a u l t S q l S e s s i o n . j a v a : 1 0 8 ) a t o r g . a p a c h e . i b a t i s . s e s s i o n . d e f a u l t s . D e f a u l t S q l S e s s i o n . s e l e c t L i s t ( D e f a u l t S q l S e s s i o n . j a v a : 1 0 2 ) a t s u n . r e f l e c t . G e n e r a t e d M e t h o d A c c e s s o r 2 3 4 . i n v o k e ( U n k n o w n S o u r c e ) a t s u n . r e f l e c t . D e l e g a t i n g M e t h o d A c c e s s o r I m p l . i n v o k e ( D e l e g a t i n g M e t h o d A c c e s s o r I m p l . j a v a : 4 3 ) a t j a v a . l a n g . r e f l e c t . M e t h o d . i n v o k e ( M e t h o d . j a v a : 4 9 7 ) a t o r g . m y b a t i s . s p r i n g . S q l S e s s i o n T e m p l a t e SqlSessionInterceptor.invoke(SqlSessionTemplate.java:358)
… 12 more

OgnlRuntime can not access a member of class java.util.ArrayList$SubList with modifiers "public" 内部类无法序列化Action 向页面传输时,定义 Action 内部的 VO 类,无法传输MyBatis 调用 Mapper 接口,传入List 集合,List = subList 的提示如下异常Caused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression ‘orderIdList...
先看 java bean类:目的使用反射调用私有方法:package com.imooc.reflect; public class Student { private void add(){ System.out.println("增加数据!"); } private int id; private String name; public int ge
这个 noValue 一定存在,但是报错。 场景就是存在并发的情况下,尤其是在服务刚刚启动的时候,就会发生这个异常。 但是很不幸,mybatis 3.4.1 之前,用的 OGNL 都是由这个问题。 3.4.1 之前的版本的 Ognl Runtime ,这里,第三个参数传 0,则永远都是 null。 public static final Object getMethodValue( Ognl Context context, Object target, String propertyNam