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

Vijay Srivastava edited comment on WW-4846 at 8/29/17 3:26 PM:
---------------------------------------------------------------

public class FeatureUpgradeAction extends BaseAction implements  
InitializingBean {

         private FeatureUpgradeResponse featureUpgradeResponse;
         private FeatureUpgradeRequest featureChangeRequest;

 public FeatureUpgradeResponse getFeatureUpgradeResponse() {

                return this.featureUpgradeResponse;
        }
         
-----------------------
Spring config (partial)

        <bean id ="featureChangeRequest" 
class="com.vzw.cloud.common.vo.featureUpgrade.FeatureUpgradeRequest" 
scope="request"> 
                <aop:scoped-proxy />
        </bean>
------------------------------------------------------------
struts config (partial)

<action name="retrieveStoragePlans" method="retrieveStoragePlans" 
class="featureUpgradeAction">
                        <interceptor-ref name="cloudStack" />
                        <result name="success" type="json">
                                        <param 
name="contentType">application/json</param>
                                        <param name="noCache">true</param>
                                        <param 
name="excludeProperties">errorCode,messageCode,processTime,result,status,statusDesc,title,uniqueId,availableFeatures.featurePlanAsInt</param>
                                        <param 
name="excludeNullProperties">true</param>
                                        <param 
name="root">featureUpgradeResponse</param> 
                        </result>


was (Author: vijays2017):
{{public class FeatureUpgradeAction extends BaseAction implements  
InitializingBean {

         private FeatureUpgradeResponse featureUpgradeResponse;
         private FeatureUpgradeRequest featureChangeRequest;

 public FeatureUpgradeResponse getFeatureUpgradeResponse() {

                return this.featureUpgradeResponse;
        }
         
}}}


> 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