Difference between revisions of "Tomcat 5"
From Briki
Line 70: | Line 70: | ||
* Restart tomcat and retest | * Restart tomcat and retest | ||
* Rinse and repeat, until all errors gone | * Rinse and repeat, until all errors gone | ||
+ | |||
+ | == Azureus and Cocoon 2.1.9 via Tomcat 5.5 == | ||
+ | === Setting up cocoon === | ||
+ | * Download the cocoon tar and untar. | ||
+ | * Run '''./build.sh webapp''' | ||
+ | * '''cp -a build/webapp /usr/share/tomcat5/webapps/cocoon''' | ||
+ | * Ensure the contents of '''/usr/share/tomcat5/webapps/cocoon''' are owned by root:root, except for the following, which should be owned by tomcat:root: | ||
+ | ** '''WEB-INF/db''' | ||
+ | ** '''WEB-INF/logs''' | ||
+ | * Create the directory '''/usr/share/tomcat5/webapps/cocoon/slide''', owned by tomcat5:root | ||
+ | * Create '''/etc/tomcat5/policy.d/30cocoon.policy''', with contents: | ||
+ | <pre> | ||
+ | grant codeBase "file:${catalina.home}/webapps/cocoon/-" { | ||
+ | permission java.io.FilePermission "/usr/lib/j2sdk1.5-sun/jre/lib/slide.properties", "read"; | ||
+ | permission java.io.FilePermission "/etc/tomcat5/policy.d", "read"; | ||
+ | permission java.io.FilePermission "/etc/tomcat5/policy.d/slide", "read,write"; | ||
+ | permission java.io.FilePermission "/etc/tomcat5/policy.d/slide/-", "read,write"; | ||
+ | permission java.io.FilePermission "${catalina.home}/temp/-", "read,write,delete"; | ||
+ | permission java.io.FilePermission "${catalina.home}/.cocoon/*", "read"; | ||
+ | permission java.io.FilePermission "${catalina.home}/webapps/cocoon/slide", "read,write"; | ||
+ | permission java.io.FilePermission "${catalina.home}/webapps/cocoon/slide/-", "read,write,delete"; | ||
+ | permission java.io.FilePermission "${catalina.home}/webapps/cocoon/WEB-INF/db/-", "write"; | ||
+ | permission java.io.FilePermission "${catalina.home}/webapps/cocoon/WEB-INF/logs", "write"; | ||
+ | permission java.io.FilePermission "${catalina.home}/webapps/cocoon/WEB-INF/logs/-", "write"; | ||
+ | permission java.lang.RuntimePermission "createClassLoader"; | ||
+ | permission java.lang.RuntimePermission "getClassLoader"; | ||
+ | permission java.lang.RuntimePermission "shutdownHooks"; | ||
+ | permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; | ||
+ | permission java.net.SocketPermission "java.sun.com:80", "connect,resolve"; | ||
+ | permission java.util.PropertyPermission "*", "read,write"; | ||
+ | }; | ||
+ | </pre> | ||
+ | * Add the following lines to '''/etc/apache2/conf.d/tomcat''': | ||
+ | <pre> | ||
+ | JkMount /cocoon ajp13_worker | ||
+ | JkMount /cocoon/* ajp13_worker | ||
+ | </pre> | ||
+ | * Restart tomcat5 and apache2, and check logs in '''/var/log/tomcat5''' for errors. | ||
+ | * Assuming no stack traces in logs, you should be able to open the cocoon homepage at '''http://mysite/cocoon/''' | ||
+ | |||
+ | === Adding Azureus === | ||
+ | |||
+ | * Turn on statistics logging in Azureus. | ||
+ | * Download '''azureus.common.xml''' and '''azureus.xsl''' from http://azureus.sourceforge.net/faq.php | ||
+ | * Place downloaded files in '''/usr/share/tomcat5/webapps/cocoon/azureus''' | ||
+ | * Edit '''azureus.common.xml''' to set the azureus server location to the logging statistics file. | ||
+ | * Add a line to '''/etc/tomcat5/policy.d/30cocoon.policy''' giving file read permission to the azureus stats file. | ||
+ | * Create '''/usr/share/tomcat5/webapps/cocoon/azureus/sitemap.xmap''' with the contents: | ||
+ | <pre> | ||
+ | <?xml version="1.0"?> | ||
+ | <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> | ||
+ | <map:components> | ||
+ | <map:generators default="file"> | ||
+ | <map:generator name="file" src="org.apache.cocoon.generation.FileGenerator"/> | ||
+ | </map:generators> | ||
+ | |||
+ | <map:transformers> | ||
+ | <map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer"> | ||
+ | <!-- This is a parameter to the transformer component --> | ||
+ | <use-request-parameters>false</use-request-parameters> | ||
+ | </map:transformer> | ||
+ | </map:transformers> | ||
+ | |||
+ | <map:serializers default="html"> | ||
+ | <map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serialization.HTMLSerializer"> | ||
+ | <doctype-public>-//W3C//DTD HTML 4.0 Transitional//EN</doctype-public> | ||
+ | <doctype-system>http://www.w3.org/TR/REC-html40/loose.dtd</doctype-system> | ||
+ | <omit-xml-declaration>true</omit-xml-declaration> | ||
+ | <encoding>UTF-8</encoding> | ||
+ | <indent>1</indent> | ||
+ | </map:serializer> | ||
+ | </map:serializers> | ||
+ | </map:components> | ||
+ | |||
+ | <map:pipelines> | ||
+ | <map:pipeline> | ||
+ | <map:generate type="file" src="azureus.cocoon.xml" /> | ||
+ | <map:transform type="xslt" src="azureus.xsl" /> | ||
+ | <map:serialize type="html" /> | ||
+ | </map:pipeline> | ||
+ | </map:pipelines> | ||
+ | </map:sitemap> | ||
+ | </pre> | ||
+ | * Restart tomcat5 and apache2, and check you can see azureus stats at '''http://mysite/cocoon/azureus/''' | ||
+ | * Sit back with a beer, and revel in the fact that you didn't have to spend 6 hours working out this stuff from scratch! |
Revision as of 15:57, 17 October 2006
Contents
- 1 Webapp Locations
- 2 Changing tomcat user
- 3 Tidying up /etc/init.d/tomcat5 output
- 4 Fixing tomcat-users.xml.new error
- 5 Changing to use log4j logging
- 6 org.apache.jasper.JasperException: Unable to compile class for JSP
- 7 No Host matches server name error
- 8 org.w3c.dom.DOMException: NOT_SUPPORTED_ERR error
- 9 java.security.AccessControlException errors
- 10 Azureus and Cocoon 2.1.9 via Tomcat 5.5
Webapp Locations
- /var/lib/tomcat5/webapps/ - user webapps, plus ROOT, examples, docs etc.
- /var/lib/tomcat5/server/webapps/ - builtin admin and manager webapps
Changing tomcat user
- Set TOMCAT_USER in /etc/tomcat5/tomcat5.conf
- See Fixing tomcat-users.xml.new error below
- chown tomcat:tomcat /usr/share/tomcat5/conf/jk2.properties
- chown tomcat:tomcat /usr/share/tomcat5/work/
Tidying up /etc/init.d/tomcat5 output
- In /etc/init.d/tomcat5
- Remove if statement around . /etc/init.d/rc.d/functions
- Change echo "waiting for processes to exit" to echo -n "."
- Add success after start and stop commands
- In /usr/bin/dtomcat5
- Comment out Using... lines
- In /usr/share/tomcat5/bin/relink
- Reorder find arguments to put -type d after mindepth and maxdepth arguments
Fixing tomcat-users.xml.new error
Error is javax.naming.NamingException: /usr/share/tomcat5/conf/tomcat-users.xml.new (Permission denied)
- chown tomcat:tomcat /etc/tomcat5 (NB. /usr/share/tomcat5/conf is a symlink to /etc/tomcat5)
Changing to use log4j logging
- Ensure log4j.jar and commons-logging.jar (or symlinks to them) are present is /usr/share/tomcat5/common/lib
- Create file /usr/share/tomcat5/common/classes/log4j.properties with contents:
log4j.rootLogger=INFO, FileAppender log4j.appender.FileAppender=org.apache.log4j.RollingFileAppender log4j.appender.FileAppender.File=/var/log/tomcat5/tomcat.log log4j.appender.FileAppender.layout=org.apache.log4j.PatternLayout # Print the date in ISO 8601 format log4j.appender.FileAppender.layout.ConversionPattern=%d [%t] %-5p %c - %m%n log4j.appender.FileAppender.MaxFileSize=1MB log4j.appender.FileAppender.MaxBackupIndex=4 #log4j.logger.org.apache=DEBUG
- Comment out Logger section in /usr/share/tomcat5/conf/server.xml
- Create empty file /var/log/tomcat5/tomcat.log (tomcat complains without this, for some reason)
org.apache.jasper.JasperException: Unable to compile class for JSP
- chown tomcat:tomcat /usr/share/tomcat5/work/ (trailing slash is important)
- Restart tomcat
No Host matches server name error
- Ensure /var/lib/tomcat5/webapps/ROOT is present - if not (and you're on Mandriva), you probably forgot to install the tomcat5-webapps and tomcat5-admin-webapps packages.
org.w3c.dom.DOMException: NOT_SUPPORTED_ERR error
- For some reason, this occurred the first time cruisecontrol was run - restarting tomcat fixed it.
java.security.AccessControlException errors
- Ensure CATALINA_OPTS contains -Djava.security.debug=access,failure in /etc/init.d/tomcat5
- Restart tomcat and recreate the error
- Run /usr/local/bin/catscan < /var/log/tomcat5/catalina_date.log to generate the required additions to /etc/tomcat5/policy.d/
- Add the relevant permissions to a new, appropriately named file in /etc/tomcat5/policy.d/
- Restart tomcat and retest
- Rinse and repeat, until all errors gone
Azureus and Cocoon 2.1.9 via Tomcat 5.5
Setting up cocoon
- Download the cocoon tar and untar.
- Run ./build.sh webapp
- cp -a build/webapp /usr/share/tomcat5/webapps/cocoon
- Ensure the contents of /usr/share/tomcat5/webapps/cocoon are owned by root:root, except for the following, which should be owned by tomcat:root:
- WEB-INF/db
- WEB-INF/logs
- Create the directory /usr/share/tomcat5/webapps/cocoon/slide, owned by tomcat5:root
- Create /etc/tomcat5/policy.d/30cocoon.policy, with contents:
grant codeBase "file:${catalina.home}/webapps/cocoon/-" { permission java.io.FilePermission "/usr/lib/j2sdk1.5-sun/jre/lib/slide.properties", "read"; permission java.io.FilePermission "/etc/tomcat5/policy.d", "read"; permission java.io.FilePermission "/etc/tomcat5/policy.d/slide", "read,write"; permission java.io.FilePermission "/etc/tomcat5/policy.d/slide/-", "read,write"; permission java.io.FilePermission "${catalina.home}/temp/-", "read,write,delete"; permission java.io.FilePermission "${catalina.home}/.cocoon/*", "read"; permission java.io.FilePermission "${catalina.home}/webapps/cocoon/slide", "read,write"; permission java.io.FilePermission "${catalina.home}/webapps/cocoon/slide/-", "read,write,delete"; permission java.io.FilePermission "${catalina.home}/webapps/cocoon/WEB-INF/db/-", "write"; permission java.io.FilePermission "${catalina.home}/webapps/cocoon/WEB-INF/logs", "write"; permission java.io.FilePermission "${catalina.home}/webapps/cocoon/WEB-INF/logs/-", "write"; permission java.lang.RuntimePermission "createClassLoader"; permission java.lang.RuntimePermission "getClassLoader"; permission java.lang.RuntimePermission "shutdownHooks"; permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; permission java.net.SocketPermission "java.sun.com:80", "connect,resolve"; permission java.util.PropertyPermission "*", "read,write"; };
- Add the following lines to /etc/apache2/conf.d/tomcat:
JkMount /cocoon ajp13_worker JkMount /cocoon/* ajp13_worker
- Restart tomcat5 and apache2, and check logs in /var/log/tomcat5 for errors.
- Assuming no stack traces in logs, you should be able to open the cocoon homepage at http://mysite/cocoon/
Adding Azureus
- Turn on statistics logging in Azureus.
- Download azureus.common.xml and azureus.xsl from http://azureus.sourceforge.net/faq.php
- Place downloaded files in /usr/share/tomcat5/webapps/cocoon/azureus
- Edit azureus.common.xml to set the azureus server location to the logging statistics file.
- Add a line to /etc/tomcat5/policy.d/30cocoon.policy giving file read permission to the azureus stats file.
- Create /usr/share/tomcat5/webapps/cocoon/azureus/sitemap.xmap with the contents:
<?xml version="1.0"?> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <map:components> <map:generators default="file"> <map:generator name="file" src="org.apache.cocoon.generation.FileGenerator"/> </map:generators> <map:transformers> <map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer"> <!-- This is a parameter to the transformer component --> <use-request-parameters>false</use-request-parameters> </map:transformer> </map:transformers> <map:serializers default="html"> <map:serializer name="html" mime-type="text/html" src="org.apache.cocoon.serialization.HTMLSerializer"> <doctype-public>-//W3C//DTD HTML 4.0 Transitional//EN</doctype-public> <doctype-system>http://www.w3.org/TR/REC-html40/loose.dtd</doctype-system> <omit-xml-declaration>true</omit-xml-declaration> <encoding>UTF-8</encoding> <indent>1</indent> </map:serializer> </map:serializers> </map:components> <map:pipelines> <map:pipeline> <map:generate type="file" src="azureus.cocoon.xml" /> <map:transform type="xslt" src="azureus.xsl" /> <map:serialize type="html" /> </map:pipeline> </map:pipelines> </map:sitemap>
- Restart tomcat5 and apache2, and check you can see azureus stats at http://mysite/cocoon/azureus/
- Sit back with a beer, and revel in the fact that you didn't have to spend 6 hours working out this stuff from scratch!