I'm having a rather particular problem with heap space and the DefaultContentTypeHandlerManager in the struts rest plugin. I've got a model driven rest controller with a few different methods that return rather large result sets and it's causing heap space issues when the content type handler tries to create a json string out of the result array. I traced the problem through to when the content type handler being passed a StringWriter object to output to, eventually it tries to resize some internal representation of the string and we get a heap space error. I'd prefer to write directly to the response output stream and not have the whole response string buffered in memory. So, I wrote my own extension of DefaultContentTypeHandlerManager that will pass my custom JSON content handler the response stream instead of a StringWriter. All seems well, except that I can't seem to find a way to override the class type of the ContentTypeHandlerManager. Here's my struts.xml:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.convention.package.locators" value="leadsService"/> <constant name="struts.convention.action.suffix" value="Controller"/> <constant name="struts.convention.action.mapAllMatches" value="true"/> <constant name="struts.convention.default.parent.package" value="rest-default"/> <constant name="struts.convention.result.path" value="/WEB-INF/templates/" /> <constant name="struts.rest.defaultExtension" value="json" /> <bean name="myJson" type="org.apache.struts2.rest.handler.ContentTypeHandler" class="com.myCode.LeadsJsonHandler" /> <bean type="org.apache.struts2.rest.ContentTypeHandlerManager" class="com.myCode.MyContentTypeHandlerManager" /> </struts> And my struts.properties: struts.rest.handlerOverride.json=myJson Is it even possible to override the ContentTypeHandlerManager? When I try to setup the bean in struts.xml as above, it just dies and throws this error: Caused by: Bean type interface org.apache.struts2.rest.ContentTypeHandlerManager with the name default has already been loaded by [unknown location] - bean - file:/home/user/myCode/trunk/target/classes/struts.xml:12:142 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:205) A quick grep of the source has yielded me nothing so far, but any help in the right direction to look would be most appreciated. Thank you, Stephen Huenneke