If you want to use your Custom Request Processor along with your Tiles Request Processor it will give the error.

This error comes when you extend your custom request processor from the RequestProcessor class. This is because of the bug in Tiles Specification which forces us to write our own custom request processor, for which the TilesRequestProcessor must be the superclass. So if you want to use your custom request processor, say for example using Struts Faces, you must extend the TilesRequestProcessor.

For example, I want to use the JavaServer Faces along with the Struts. So I am using Struts Faces to integrate both Struts & JavaServer Faces. So every request from the jsp should be processed by the Faces Request Processor. So in my web.xml, I write the controller for them as below. Note that the controller processorClass has the value FacesTilesRequestProcessor which extends the TilesRequestProcessor.

<!-- The "input" parameter on "action" elements is the name of a local or global "forward" rather than a subapp-relative path -->
<set-property value="true" property="inputForward">
<set-property value="org.apache.struts.faces.application.FacesTilesRequestProcessor" property="processorClass">

<plug-in classname="org.apache.struts.tiles.TilesPlugin">
<set-property value="/WEB-INF/tiles-defs.xml" property="definitions-config">
<set-property value="true" property="moduleAware">
<set-property value="true" property="definitions-parser-validate">

Like it on Facebook, Tweet it or share this article on other bookmarking websites.