From: Wolfgang M. <wol...@gm...> - 2009-11-22 10:17:06
|
> From this, it seems that: > 1. web.xml is the sole place to specify what content should be > served from Cocoon instead of eXist controller framework web.xml takes precedence over any other configuration within the webapp. The eXist controller framework is just a servlet filter which by default maps to /*. This means all paths in the URL space of the application are passed through the controller. In previous versions of eXist, this was Cocoon's role. Cocoon's sitemap.xmap was comparable to controller.xql. All the sitemap.xmap's in eXist's webapp have thus been replaced by corresponding controller.xql's. To give Cocoon full control over your webapp, you need to restore the mapping to /* and disable the mapping for XQueryURLRewrite. In this case, you also need to re-enable the other servlet mappings (webdav, xmlrpc, ...) in web.xml (commented out). However, eXist's controller can cooperate with Cocoon (see below), so it is possible to keep both mapped to /*. > 2. the <ignore> instruction in controller.xql has no effect at all > (when the URL is specified in web.xml to be treated by Cocoon) If you disabled the mapping for XQueryURLRewrite in web.xml, the <ignore> will not be required. However, it is relevant if you did not deactive XQueryURLRewrite. In this case eXist's controller takes precedence over other servlets - incuding cocoon. The <ignore> instruction then makes sure that the request is forwarded to one of those other servlets. The processing would be as follows: request -> controller.xql -> <ignore> -> web server checks web.xml and tries to find another servlet to handle request -> finds mapping for Cocoon -> forwards request to Cocoon If no mapping is found in web.xml, the server falls back to its default: resolve the path to a file and return it. Wolfgang |