## page was renamed from Tomcat = Tomcat = Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies. == Installation on Slackware == * cd ~/Downloads * wget http://mirrors.fe.up.pt/pub/apache/tomcat/tomcat-7/v7.0.57/bin/apache-tomcat-7.0.57.tar.gz * su * cp apache-tomcat-7.0.57.tar.gz /opt * cd /opt * tar xvzf apache-tomcat-7.0.57.tar.gz * chown vitor * -R * chgrp users * -R * exit == Start Tomcat == * cd /opt/apache-tomcat-7.0.57/bin/ * #./startup.sh * ./catalina.sh start * http://localhost:8080/ == Add admin user == * cd /opt/apache-tomcat-7.0.57/conf Edit tomcat-users.xml {{{ }}} * ./shutdown.sh * ./startup.sh == WebApps location == * /opt/apache-tomcat-7.0.57/webapps A WAR file can be copied or exploded in the webapps folder. == Sample App == Download http://localhost:8080/docs/appdev/sample/sample.war and deploy in the webapps folder. After the deploy the WAR file is exploded. == Configuration values in web.xml for WAR file == Adapted from http://stackoverflow.com/questions/372686/how-can-i-specify-system-properties-in-tomcat-configuration-on-startup {{{#!highlight xml SMTP_PASSWORD java.lang.String abc123ftw }}} Get values in code: {{{#!highlight java // Obtain our environment naming context Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); // Look up our data source String s = (String)envCtx.lookup("SMTP_PASSWORD"); }}} == Change HTTP from port 8080 to port 8081 and AJP from 8009 to 8010 == Edit file conf/server.xml Change the HTTP Connector from 8080 to 8081. Change AJP1.3 connector from 8009 to 8010. {{{#!highlight xml }}} == Copy JBoss5 client libs to Tomcat == {{{#!highlight bash cd /opt/jboss-5.1.0.GA/client cp commons-logging.jar /opt/apache-tomcat-7.0.53/lib cp concurrent.jar /opt/apache-tomcat-7.0.53/lib cp ejb3-persistence.jar hibernate-annotations.jar /opt/apache-tomcat-7.0.53/lib cp jboss-aop-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-appclient.jar /opt/apache-tomcat-7.0.53/lib cp jboss-aspect-jdk50-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-common-core.jar /opt/apache-tomcat-7.0.53/lib cp jboss-deployers-client-spi.jar /opt/apache-tomcat-7.0.53/lib cp jboss-deployers-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-deployers-core-spi.jar /opt/apache-tomcat-7.0.53/lib cp jboss-deployers-core.jar /opt/apache-tomcat-7.0.53/lib cp jboss-deployment.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-common-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-core-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-ext-api.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-proxy-clustered-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-proxy-impl-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-proxy-spi-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ejb3-security-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ha-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-ha-legacy-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-iiop-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-integration.jar /opt/apache-tomcat-7.0.53/lib cp jboss-j2se.jar /opt/apache-tomcat-7.0.53/lib cp jboss-javaee.jar /opt/apache-tomcat-7.0.53/lib cp jboss-jsr77-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-logging-jdk.jar /opt/apache-tomcat-7.0.53/lib cp jboss-logging-log4j.jar /opt/apache-tomcat-7.0.53/lib cp jboss-logging-spi.jar /opt/apache-tomcat-7.0.53/lib cp jboss-main-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-mdr.jar /opt/apache-tomcat-7.0.53/lib cp jboss-messaging-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-remoting.jar /opt/apache-tomcat-7.0.53/lib cp jboss-security-spi.jar /opt/apache-tomcat-7.0.53/lib cp jboss-serialization.jar /opt/apache-tomcat-7.0.53/lib cp jboss-srp-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-system-client.jar /opt/apache-tomcat-7.0.53/lib cp jboss-system-jmx-client.jar /opt/apache-tomcat-7.0.53/lib cp jbosscx-client.jar /opt/apache-tomcat-7.0.53/lib cp jbossjts-integration.jar /opt/apache-tomcat-7.0.53/lib cp jbossjts.jar /opt/apache-tomcat-7.0.53/lib cp jbosssx-as-client.jar /opt/apache-tomcat-7.0.53/lib cp jbosssx-client.jar /opt/apache-tomcat-7.0.53/lib cp jmx-client.jar /opt/apache-tomcat-7.0.53/lib cp jmx-invoker-adaptor-client.jar /opt/apache-tomcat-7.0.53/lib cp jnp-client.jar /opt/apache-tomcat-7.0.53/lib cp slf4j-api.jar /opt/apache-tomcat-7.0.53/lib cp slf4j-jboss-logging.jar /opt/apache-tomcat-7.0.53/lib cp xmlsec.jar /opt/apache-tomcat-7.0.53/lib }}} == Windows client copy == {{{ cd C:\appsvr\jboss-5.1.0.GA\client copy commons-logging.jar C:\appsvr\apache-tomcat-7.0.29\lib copy concurrent.jar C:\appsvr\apache-tomcat-7.0.29\lib copy ejb3-persistence.jar hibernate-annotations.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-aop-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-appclient.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-aspect-jdk50-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-common-core.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-deployers-client-spi.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-deployers-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-deployers-core-spi.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-deployers-core.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-deployment.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-common-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-core-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-ext-api.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-proxy-clustered-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-proxy-impl-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-proxy-spi-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ejb3-security-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ha-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-ha-legacy-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-iiop-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-integration.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-j2se.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-javaee.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-jsr77-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-logging-jdk.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-logging-log4j.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-logging-spi.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-main-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-mdr.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-messaging-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-remoting.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-security-spi.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-serialization.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-srp-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-system-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jboss-system-jmx-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jbosscx-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jbossjts-integration.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jbossjts.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jbosssx-as-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jbosssx-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jmx-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jmx-invoker-adaptor-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy jnp-client.jar C:\appsvr\apache-tomcat-7.0.29\lib copy slf4j-api.jar C:\appsvr\apache-tomcat-7.0.29\lib copy slf4j-jboss-logging.jar C:\appsvr\apache-tomcat-7.0.29\lib copy xmlsec.jar C:\appsvr\apache-tomcat-7.0.29\lib }}} == Windows remote debug == https://confluence.sakaiproject.org/display/BOOT/Setting+Up+Tomcat+For+Remote+Debugging comment {{{ C:\tomcat\bin> tomcat5w //ES//Tomcat5 -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n }}} Listens on port 5050: {{{ Cmd as admin <...>\apache-tomcat-7.0.29\bin>Tomcat7w.exe //ES//Tomcat7 Java tab Java options: -Xdebug -Xrunjdwp:transport=dt_socket,address=5050,server=y,suspend=n }}} == Tomcat 7 - bin\catalina.bat == Starting with * set JPDA_SUSPEND=y * catalinat.bat jpda start * Remote debug app with eclipse on port 8000. When attached the tomcat server will boot == Linux remote debug == * export JPDA_SUSPEND=y # to wait for attach debugger * bin/catalina.sh jpda start * tail logs/catalina.out # should show Listening for transport dt_socket at address: 8000 * bin/catalina.sh jpda stop == Logging custom logger == Create logger {{{#!highlight java java.util.logging.Logger logger = java.util.logging.Logger.getLogger("TestLogger"); logger.info("Test message info level"); // logs in info level }}} Configure the logging properties in /conf/logging.properties {{{ handlers = (...),.org.apache.juli.FileHandler handlers = (...),5TestLogger.org.apache.juli.FileHandler 5TestLogger.org.apache.juli.FileHandler.level = FINE 5TestLogger.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 5TestLogger.org.apache.juli.FileHandler.prefix = TestLogger. # configure logger level and handler TestLogger.handlers=5TestLogger.org.apache.juli.FileHandler TestLogger.level=INFO }}} When no custom handler is defined the Logger outputs to console and to catalina.out in Tomcat 7.0.X.