[ 
https://issues.apache.org/jira/browse/WW-4846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16147752#comment-16147752
 ] 

Vijay Srivastava commented on WW-4846:
--------------------------------------

I thought about it. but this is not the only place where we are using request 
parameters conversion. Actually we are migrating to struts 2.5 and this will 
create lot of changes. So do you see any issue in parameter conversion ? 
ModelDrivenInterceptor is not working as intended ? please advise.

thanks

> Not able to convert Spring object to the JSON response
> ------------------------------------------------------
>
>                 Key: WW-4846
>                 URL: https://issues.apache.org/jira/browse/WW-4846
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Results, Plugin - JSON
>    Affects Versions: 2.5.13
>            Reporter: Vijay Srivastava
>            Priority: Blocker
>
> Hi,
> I am using latest version of struts struts-2.5.12 and and spring 4.1 as 
> advised. I am having an issue in JSON response. There is an action class 
> which is returning Spring request scoped object as JSON response however I am 
> getting error as below 
> ERROR ExceptionMappingInterceptor org.apache.struts2.json.JSONException: 
> org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: 
> org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: 
> java.lang.reflect.InvocationTargetException
>  org.apache.struts2.json.JSONException: 
> org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: 
> org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: 
> org.apache.struts2.json.JSONException: 
> java.lang.reflect.InvocationTargetException
>       at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:269)
>       at org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:197)
>       at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:182)
>       at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:143)
>       at org.
> Any idea what's wrong here ? I am using Java 1.8. I think below code in 
> JSONWriter is not working as expected
> protected Method findBaseAccessor(Class clazz, Method accessor) {
>         Method baseAccessor = null;
>         if (clazz.getName().contains("$$EnhancerByCGLIB$$")) {
>             try {
>                 baseAccessor = 
> Thread.currentThread().getContextClassLoader().loadClass(
>                         clazz.getName().substring(0, 
> clazz.getName().indexOf("$$"))).getMethod(
>                         accessor.getName(), accessor.getParameterTypes());
>             } catch (Exception ex) {
>                 LOG.debug(ex.getMessage(), ex);
>             }
>         } else if (clazz.getName().contains("$$_javassist")) {
>             try {
>                 baseAccessor = Class.forName(
>                         clazz.getName().substring(0, 
> clazz.getName().indexOf("_$$")))
>                         .getMethod(accessor.getName(), 
> accessor.getParameterTypes());
>             } catch (Exception ex) {
>                 LOG.debug(ex.getMessage(), ex);
>             }
>             
>         //in hibernate4.3.7,because javassist3.18.1's class name generate 
> rule is '_$$_jvst'+...
>         } else if(clazz.getName().contains("$$_jvst")){
>             try {
>                 baseAccessor = Class.forName(
>                         clazz.getName().substring(0, 
> clazz.getName().indexOf("_$$")))
>                         .getMethod(accessor.getName(), 
> accessor.getParameterTypes());
>             } catch (Exception ex) {
>                 LOG.debug(ex.getMessage(), ex);
>             }
>         }
>         else {
>             return accessor;
>         }
>         return baseAccessor;
>     }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to