Tomcat Integration
The following guide explains how to deploy ServiceMix on the Apache Tomcat application server.
Pre-Installation Requirements
The recommended software environment is:
- Java Developer Kit (JDK) 1.4.x or greater to run ServiceMix, 1.5.x or greater to build ServiceMix.
- The JAVA_HOME environment variable must be set to the directory where the JDK is installed, e.g.
c:\Program Files\Java\jdk1.5.xx
. - Maven 1.0.2 or greater (required when installing source or developers' releases).
- Apache Tomcat version 5.5
The following is the platform which was used to produce this document:
- Windows XP
- Tomcat 5.5
- Java 5
Deploying ServiceMix on Tomcat
Execute the following steps to deploy ServiceMix on Apache Tomcat. Note: this procedure will work on Unix platforms as well as the Windows platform, with the appropriate substitutions, such as using the backslash instead of the forward slash.
- Apache Tomcat must be downloaded and installed. For instructions please see the Tomcat web site.
- By default Tomcat uses port 8080. Please note if your installation has Tomcat on another port, such as port 80.
- Download and build the ServiceMix source code. Please see the Getting Started guide for instructions.
Note: ServiceMix must be BUILT as well as downloaded. - Create the WAR file:
where
cd [servicemix_install_dir]\tooling\servicemix-web maven war
servicemix_install_dir
is the directory in which ServiceMix was downloaded and installed. - To deploy the WAR file,
servicemix-web.war
, copy it to the Tomcatwebapps
directory. For example, on a Windows system:wherecd [servicemix_install_dir]\tooling\servicemix-web\target copy servicemix-web.war [tomcat_install_dir]\webapps
tomcat_install_dir
is the directory in which Tomcat was installed. - Stop and start Tomcat to deploy the ServiceMix WAR file.
- If there are errors indicating missing classes when Tomcat starts, perform the followng steps:
- Stop Tomcat.
- Install additional jar files in the deployed ServiceMix directory. The missing jar files are:
commons-collections-3.1.jar
andcommons-pool-1.2.jar
. These can be obtained by using a search engine and searching for them. Or they can found in your Maven repository, which is usually located inyour_home_dir\.maven\repository
. Specifically,your_home_dir\.maven\repository\commons-collections\jars
andyour_home_dir\.maven\repository\commons-pool\jars
.copy commons-collections-3.1.jar [tomcat_install_dir]\webapps\servicemix-web\WEB-INF\lib copy commons-pool-1.2.jar [tomcat_install_dir]\webapps\servicemix-web\WEB-INF\lib
- Start Tomcat.
The Tomcat console output should show ServiceMix starting:Note: The console output is also logged inINFO: Deploying web application archive servicemix-web.war Nov 1, 2005 11:03:54 AM org.springframework.web.context.ContextLoader initWebApplicationContext INFO: Root WebApplicationContext: initialization started Nov 1, 2005 11:03:54 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml] Nov 1, 2005 11:03:55 AM org.springframework.core.CollectionFactory <clinit> INFO: JDK 1.4+ collections available Nov 1, 2005 11:03:55 AM org.springframework.core.CollectionFactory <clinit> INFO: Commons Collections 3.x available Nov 1, 2005 11:03:55 AM org.springframework.context.support.AbstractRefreshableApplicationContext refreshBeanFactory INFO: Bean factory for application context [Root WebApplicationContext]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [jencks,broker,transactionManager,jmsFactory,jbi]; root of BeanFactory hierarchy Nov 1, 2005 11:03:55 AM org.springframework.context.support.AbstractApplicationContext refresh INFO: 5 beans defined in application context [Root WebApplicationContext] Nov 1, 2005 11:03:55 AM org.springframework.context.support.AbstractApplicationContext initMessageSource INFO: Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@1049d3] Nov 1, 2005 11:03:55 AM org.springframework.context.support.AbstractApplicationContext initApplicationEventMulticaster INFO: Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@14a7a12] Nov 1, 2005 11:03:55 AM org.springframework.ui.context.support.UiApplicationContextUtils initThemeSource INFO: No ThemeSource found for [Root WebApplicationContext]: using ResourceBundleThemeSource Nov 1, 2005 11:03:55 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons INFO: Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [jencks,broker,transactionManager,jmsFactory,jbi]; root of BeanFactory hierarchy] Nov 1, 2005 11:03:55 AM org.springframework.beans.factory.support.AbstractBeanFactory getBean INFO: Creating shared instance of singleton bean 'jencks' Nov 1, 2005 11:03:56 AM org.springframework.beans.factory.support.AbstractBeanFactory getBean INFO: Creating shared instance of singleton bean 'broker' ...
tomcat_home_dir\logs\catalina.xxxx-xx-xx.log
.
Testing the ServiceMix Deployment on Tomcat
To ensure that ServiceMix is running on Tomcat do the following.
- Review the Tomcat console output or the Tomcat log files (see above) and look for servicemix-web starting up without any errors.
#ServiceMix's default port is 1099. From another window run netstat and search for port 1099.
From a Windows console, type:netstat -an|find "1099"
OR
From a Unix command shell, type:netstat -an|grep 1099
- Run the ServiceMix JMX Console. To do this enter the following URL in a web browser: http://localhost:8080/servicemix-web