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