Hi

You will have to create your own ComponentEventResultProcessor and
contribute it in your AppModule class :

public void contributeComponentEventResultProcessor(
            MappedConfiguration<Class, ComponentEventResultProcessor>
configuration) {

  configuration.addInstance(net.sf.json.JSONObject.class,
YouProcessor.class);

}

2010/7/8 Borut Bolčina <borut.bolc...@gmail.com>

> Hello,
>
> Is it possible to configure return types?
>
> In one of my event methods I was trying to return net.sf.json.JSONObject
> instead of org.apache.tapestry5.json.JSONObject and got this error message:
>
> [ERROR] TapestryModule.RequestExceptionHandler Processing of request failed
> with uncaught exception: A component event handler method returned the
> value
>
> {"birthDay":"","birthMonth":"","birthYear":"","gender":"male","postOfficeNumberAndName":"1236
> Trzin"}. Return type net.sf.json.JSONObject can not be handled.  Configured
> return types are java.lang.Class, java.lang.String,
> org.apache.tapestry5.Link, org.apache.tapestry5.StreamResponse,
> org.apache.tapestry5.ajax.MultiZoneUpdate,
> org.apache.tapestry5.json.JSONArray, org.apache.tapestry5.json.JSONObject,
> org.apache.tapestry5.runtime.Component,
> org.apache.tapestry5.runtime.RenderCommand.
> org.apache.tapestry5.runtime.ComponentEventException: A component event
> handler method returned the value
>
> {"birthDay":"","birthMonth":"","birthYear":"","gender":"male","postOfficeNumberAndName":"1236
> Trzin"}. Return type net.sf.json.JSONObject can not be handled.  Configured
> return types are java.lang.Class, java.lang.String,
> org.apache.tapestry5.Link, org.apache.tapestry5.StreamResponse,
> org.apache.tapestry5.ajax.MultiZoneUpdate,
> org.apache.tapestry5.json.JSONArray, org.apache.tapestry5.json.JSONObject,
> org.apache.tapestry5.runtime.Component,
> org.apache.tapestry5.runtime.RenderCommand. [at context:Index.tml, line 20]
>
>
> My event method:
>
>    @OnEvent(component = "email", value = "blur")
>    public JSONObject checkIfUserWithThisEmailExists(String value) {
>        UserData userData = new UserData();
>        if(value.equals("b...@example.com")) {
>            userData.setPostOfficeNumberAndName("1236 Trzin");
>            userData.setGender("male");
>        } else {
>            logger.info("Bob does not exist.");
>        }
>        JSONObject jsonObject = (JSONObject)
> JSONSerializer.toJSON(userData);
>        return jsonObject;
>    }
>
> The reason I used net.sf.json.JSONObject is because it offers great
> conversion and construction capabilities to/from JavaBeans/XML/JSON. Have a
> look at http://json-lib.sourceforge.net/snippets.html.
>
> Is it possible or do I have to construct the org.apache.tapestry5.json.JSON
> object by hand?
>
> Thanks,
> Borut
>



-- 
Regards,
Christophe Cordenier.

Committer on Apache Tapestry 5
Co-creator of wooki @wookicentral.com

Reply via email to