cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jed <...@wunderboy.org>
Subject Re: Tomcat passing requests to cocoon for docroot, but not sub-directories?
Date Thu, 10 Apr 2008 20:15:51 GMT
Well a follow up to say I fixed the problem. As I suspected it was a
problem with Tomcat, not Cocoon.

Short backstory, basically we had an existing web application using
older version of Tomcat/Cocoon and this was part of the process of
updating and moving everything to a newer faster environment.

We re-used a lot of the original configurations with some re-working
to remove deprecated elements and this where the error occured.

In Tomcats server.xml file, for the Host we had appBase defined as an
explicit path, as per the previous installation. This was set to
"/usr/local/share/apache/htdocs". Despite the documention saying you
*can* use an explicit path this seemed to be causing the problem.
Setting it to a zero length string seemed to solve the problem and now
everything appears to be working fine now.

I'll revisit the problem later on to check if this really is the
proper "fix" but for now it's working and we can carry on porting the
app.

- Jed



On 10/04/2008, Jed <neil.jed@gmail.com> wrote:
> Hi All,
>
>  I'm a new Cocoon user and I've come across and I'm having a really
>  bizarre problem at the moment which has stopped my site development in
>  it's tracks.
>
>  I've got Apache/Tomcat/Cocoon set-up and have got the Tomcat and
>  Cocoon samples running just fine. I've set-up a virtual server with
>  it's own docroot and made a simple "HelloWorld" servlet and XML/XSLT
>  test and again, those work both fine.
>
>  However, I've now started setting up my pipelines/matchers and a
>  really strange thing is happening.
>
>  As a test, I've put "helloworld.xml" and its associated xsl file in
>  docroot and set-up a matcher so that and request for /*.jhtml
>  effectively loads and transforms that file. This works fine. However,
>  if I then make a subdirectory of docroot and place the same xml/xsl
>  there and set-up a matcher for that, absolutely nothing happens.
>  Instead I just get a Tomcat 404 page.
>
>  I've been scratching my head over this for a week and what appears to
>  be the problem is that Tomcat is definately passing requests for
>  documents in docroot to cocoon but NOT for any sub-directories.
>
>  The way I tested was as follows:
>
>  Test 1:
>
>  Created files:
>  docroot/helloworld.xml
>  docroot/helloworld.xsl
>
>  Matcher:
>  <map:match pattern="*.jhtml">
>  <map:generate src="helloworld.xml"/>
>  <map:transform src="helloworld.xsl"/>
>  <map:serialize type="html"/>
>  </map:match>
>
>  Request:
>  http://test.domain/randomfilename.jhtml
>
>  Result:
>  "Hello World!"
>
>  Test 2:
>
>  Create files:
>  docroot/main/helloworld.xml
>  docroot/main/helloworld.xsl
>
>  Matcher:
>  <map:match pattern="/main/*.jhtml">
>  <map:generate src="/main/helloworld.xml"/>
>  <map:transform src="/main/helloworld.xsl"/>
>  <map:serialize type="html"/>
>  </map:match>
>
>  Request:
>  http://test.domain/main/randomfilename.jhtml
>
>  Result:
>  Tomcat 404 error message
>
>  Test 3:
>
>  Remove files:
>  docroot/helloworld.xml
>  docroot/helloworld.xsl
>
>  Matcher:
>  <map:match pattern="*.jhtml">
>  <map:generate src="helloworld.xml"/>
>  <map:transform src="helloworld.xsl"/>
>  <map:serialize type="html"/>
>  </map:match>
>
>  Request:
>  http://test.domain/randomfilename.jhtml
>
>  Result:
>  Coccon 404 error message as defined in <map:handle-errors>
>
>  I have DEBUG level set in logkit and watched what was happening when I
>  made requests. mod_jk was intercepting the request from apache and
>  matching it with a worker and passing it to Tomcat. For requests for
>  documents in docroot, Tomcat was passing them to cocoon as the
>  requests and processing can be seen in the sitemap.log file.
>
>  However, when a request is made for a file in a sub-directory of
>  docroot, there is zero activity in sitemap.log - the request just
>  never gets there!
>
>  I am *completely* baffled. I believe I have the various components
>  configured correctly but as stated, Tomcat will not pass requests for
>  sub-dirs to Cocoon.
>
>  Can anyone shed any light on this?
>
>  - Jed
>
>  Heres the pertinent extracts from the various configs:
>
>  Apache - http.conf:
>
>  <VirtualHost *:80>
>  DocumentRoot /usr/local/apache/share/saab_current/htdocs/
>  ServerName test.domain
>  Options FollowSymLinks +Indexes
>  <Directory /usr/local/apache/share/htdocs>
>  Options +Indexes
>  </Directory>
>  DirectoryIndex index.jhtml index.html index.xml
>  JkMount /*.shtml xmlworker
>  JkMount /main/*.jhtml xmlworker
>  </VirtualHost>
>
>  Tomcat - server.xml
>  <Engine name="Catalina" defaultHost="test.domain"
>  cachingAllowed="true" debug="9">
>  <Host name="test.domain" debug="9" appBase="/usr/local/apache/share/htdocs"
>  unpackWARs="true" autoDeploy="true" xmlValidation="false"
>  xmlNamespaceAware="false">
>  <Context debug="9"
>  reloadable="true"
>  path=""
>  docBase="/usr/local/apache/share/htdocs"
>  />
>  </Host>
>  </Engine>
>
>  Tomcat - workers.properties
>
>  # XML worker
>  worker.xmlworker.port=8009
>  worker.xmlworker.host=localhost
>  worker.xmlworker.type=ajp13
>
>  Cocoon - sitemap.xmap
>
>  <map:match pattern="*.jhtml">
>  <map:generate src="pageOne.xml"/>
>  <map:transform src="doc2html.xsl"/>
>  <map:serialize type="html"/>
>  </map:match>
>
>  <map:match pattern="/main/*.jhtml">
>  <map:generate src="/main/pageTwo.xml"/>
>  <map:transform src="/main/doc2html.xsl"/>
>  <map:serialize type="html"/>
>  </map:match>
>
>  My set-up is:
>
>  Fedora Core 6
>  Apache/2.2.8
>  mod_jk 1.2.26
>  Tomcat  5.5.26
>  Cocoon 2.1.11
>  Sun JDK 1.6.0_05-b13
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message