tomcat

Embedding into an application

Embed tomcat using maven

      <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <id>tomcat-run</id>
                      <goals>
                        <goal>exec-war-only</goal>
                     </goals>
<!--This phase is for creating jar file.You can customize configuration -->
                        <phase>package</phase>
                    <configuration>
                        <path>/WebAppName</path>
                        <enableNaming>false</enableNaming>
                        <finalName>WebAppName.jar</finalName>
                    </configuration>
                </execution>
            </executions>
<!--This configuration is for running application in your ide-->
            <configuration>
                <port>8020</port>
                <path>/webappName</path>
        <!--These properties are optional-->
                <systemProperties>
                    <CATALINA_OPTS>-Djava.awt.headless=true -Dfile.encoding=UTF-8
                        -server -Xms1536m -Xmx1536m
                        -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
                        -XX:MaxPermSize=512m -XX:+DisableExplicitGC
                        -XX:+UseConcMarkSweepGC
                        -XX:+CMSIncrementalMode
                        -XX:+CMSIncrementalPacing
                        -XX:CMSIncrementalDutyCycleMin=0
                        -XX:-TraceClassUnloading
                    </CATALINA_OPTS>
                </systemProperties>
            </configuration>
        </plugin>

You can run the above tomcat in your ide using goal tomcat:run. If you run package goal it will create a jar file in your target folder which can create tomcat instance itself and run.

Using </CATALINA_OPTS> you can specify properties like permgen max and min size, Garbage Collection mechanism etc.which are completely optional.


This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow