org.apache.struts2.json.JSONExce…

来源:互联网 发布:创建数据表的sql语句 编辑:程序博客网 时间:2024/06/13 22:59
今天在修改学习平台的bug时出现了这个问题:
org.apache.struts2.json.JSONException:org.apache.struts2.json.JSONException:org.apache.struts2.json.JSONException:java.lang.IllegalAccessException: Classorg.apache.struts2.json.JSONWriter can not access a member of classorg.springframework.aop.interceptor.ExposeInvocationInterceptor$1with modifiers "public"

atorg.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230)
atorg.apache.struts2.json.JSONWriter.process(JSONWriter.java:160)
atorg.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
atorg.apache.struts2.json.JSONWriter.write(JSONWriter.java:94)
atorg.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:115)
atorg.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:197)
atorg.apache.struts2.json.JSONResult.execute(JSONResult.java:170)
atcom.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
atcom.stusys.utils.SystemInterceptor.intercept(SystemInterceptor.java:51)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atorg.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
atorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atorg.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atorg.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atorg.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atorg.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atcom.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
atorg.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
atorg.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
atorg.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
atorg.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
atcom.stusys.utils.init.SystemFilter.doFilter(SystemFilter.java:39)
atorg.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
atorg.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
atorg.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
atorg.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
atorg.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
atorg.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
atorg.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
atorg.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
atorg.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
atorg.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
atorg.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
atorg.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2440)
atorg.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2429)
atjava.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
atjava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
atorg.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.struts2.json.JSONException:org.apache.struts2.json.JSONException:java.lang.IllegalAccessException: Classorg.apache.struts2.json.JSONWriter can not access a member of classorg.springframework.aop.interceptor.ExposeInvocationInterceptor$1with modifiers "public"
atorg.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230)
atorg.apache.struts2.json.JSONWriter.process(JSONWriter.java:160)
atorg.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
atorg.apache.struts2.json.JSONWriter.add(JSONWriter.java:355)
atorg.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215)
... 75 more
Caused by: org.apache.struts2.json.JSONException:java.lang.IllegalAccessException: Classorg.apache.struts2.json.JSONWriter can not access a member of classorg.springframework.aop.interceptor.ExposeInvocationInterceptor$1with modifiers "public"
atorg.apache.struts2.json.JSONWriter.bean(JSONWriter.java:230)
atorg.apache.struts2.json.JSONWriter.process(JSONWriter.java:160)
atorg.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
atorg.apache.struts2.json.JSONWriter.array(JSONWriter.java:478)
atorg.apache.struts2.json.JSONWriter.process(JSONWriter.java:148)
atorg.apache.struts2.json.JSONWriter.value(JSONWriter.java:126)
atorg.apache.struts2.json.JSONWriter.add(JSONWriter.java:355)
atorg.apache.struts2.json.JSONWriter.bean(JSONWriter.java:215)
... 79 more
Caused by: java.lang.IllegalAccessException: Classorg.apache.struts2.json.JSONWriter can not access a member of classorg.springframework.aop.interceptor.ExposeInvocationInterceptor$1with modifiers "public"
atsun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
at java.lang.reflect.Method.invoke(Method.java:588)
atorg.apache.struts2.json.JSONWriter.bean(JSONWriter.java:210)
... 86 more

在网上找一些解决方法,加上自己实践,总结一下:
1. 在SSH的项目里,在Action里面注入spring时,只能生成set(),而不能有get(),在getXXX()方法上面加上一行—— @JSON(serialize=false) ;或者直接不写;
2.对于一些不必要设为action私有变量的变量,尽量在方法里面定义,不要拿到外面。
0 0