snipt

Ctrl+h for KB shortcuts

Text only

Compile and Install Tomcat Native Library

If you are planning on running Tomcat in a production environment, it is advisable that you install the native library. The native library will improve the performance of your Tomcat installation.

The OS X developer tools must be installed.

Download and unpack Apache Portable Runtime (APR)

Download apr-1.3.x-src.tar.gz source release archive from the Apache APR Download Page

Unpack the source code into the directory of your choice. /usr/local/src is a suggestion.

Build and install APR

# Change to the APR source directory
cd /usr/local/src/apr-1.3.x

# Build the make file
./configure

# Users of 64-bit Java 6 should use the following configure command:
CFLAGS='-arch x86_64' ./configure

# Make the library
make

# Test the build (Takes a while)
make test

# Install APR
make install

Build the Tomcat Native Library

# Change directories to Tomcat Binaries
cd /Library/Tomcat/Home/bin

# Unpack the native library source code
tar -xvzf tomcat-native.tar.gz

# Change into the native source directory
cd tomcat-native-1.1.20-src/jni/native

# Build the make file for Java 5
./configure --with-apr=/usr/local/apr --with-ssl=/usr # With SSL
./configure --with-apr=/usr/local/apr --without-ssl # Without SSL

# Build the make file for Java 6
./configure --with-apr=/usr/local/apr --with-ssl=/usr --with-java-home=/System/Library/Frameworks/JavaVM.framework/ # With SSL
./configure --with-apr=/usr/local/apr --without-ssl --with-java-home=/System/Library/Frameworks/JavaVM.framework/ # Without SSL

# Users of 64-bit Java 6 should use the following configure command:
CFLAGS='-arch x86_64' ./configure --with-apr=/usr/local/apr --with-ssl=/usr/ssl --with-java-home=/System/Library/Frameworks/JavaVM.framework/

# Make
make

# Copy the native library to /usr/lib/java
sudo cp .libs/libtcnative-1.0.1.20.dylib /usr/lib/java

# Create a symbolic link in /usr/lib/java to the native library
cd /usr/lib/java
sudo ln -sfhv libtcnative-1.0.1.20.dylib libtcnative-1.dylib
sudo ln -sfhv libtcnative-1.dylib libtcnative-1.jnilib

# Restart Tomcat
cd /Library/Tomcat/Home/bin
./shutdown.sh
./startup.sh

# Check the log to make sure APR is loaded
cd ../logs
tail -n 30 catalina.out
You should see the following message:
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.

# There has been a problem with the pollersize setting that has appeared, disappeared and then reappeared. If you get the error:
INFO: Failed to create poller with specified size of 8192
You will have to edit server.xml.
cd ../conf
nano server.xml

# Change the following line ...
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

# To ..
<Connector port="8009" protocol="AJP/1.3" pollerSize="1024" redirectPort="8443" />
https://snipt.net/embed/fae4d91621b2e4b96ac3a23493694fbf/
/raw/fae4d91621b2e4b96ac3a23493694fbf/
fae4d91621b2e4b96ac3a23493694fbf
text
Text only
87
2019-06-18T21:20:42
True
False
False
/api/public/snipt/33631/
compile-and-install-tomcat-native-library
<table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><a href="#L-1"> 1</a> <a href="#L-2"> 2</a> <a href="#L-3"> 3</a> <a href="#L-4"> 4</a> <a href="#L-5"> 5</a> <a href="#L-6"> 6</a> <a href="#L-7"> 7</a> <a href="#L-8"> 8</a> <a href="#L-9"> 9</a> <a href="#L-10">10</a> <a href="#L-11">11</a> <a href="#L-12">12</a> <a href="#L-13">13</a> <a href="#L-14">14</a> <a href="#L-15">15</a> <a href="#L-16">16</a> <a href="#L-17">17</a> <a href="#L-18">18</a> <a href="#L-19">19</a> <a href="#L-20">20</a> <a href="#L-21">21</a> <a href="#L-22">22</a> <a href="#L-23">23</a> <a href="#L-24">24</a> <a href="#L-25">25</a> <a href="#L-26">26</a> <a href="#L-27">27</a> <a href="#L-28">28</a> <a href="#L-29">29</a> <a href="#L-30">30</a> <a href="#L-31">31</a> <a href="#L-32">32</a> <a href="#L-33">33</a> <a href="#L-34">34</a> <a href="#L-35">35</a> <a href="#L-36">36</a> <a href="#L-37">37</a> <a href="#L-38">38</a> <a href="#L-39">39</a> <a href="#L-40">40</a> <a href="#L-41">41</a> <a href="#L-42">42</a> <a href="#L-43">43</a> <a href="#L-44">44</a> <a href="#L-45">45</a> <a href="#L-46">46</a> <a href="#L-47">47</a> <a href="#L-48">48</a> <a href="#L-49">49</a> <a href="#L-50">50</a> <a href="#L-51">51</a> <a href="#L-52">52</a> <a href="#L-53">53</a> <a href="#L-54">54</a> <a href="#L-55">55</a> <a href="#L-56">56</a> <a href="#L-57">57</a> <a href="#L-58">58</a> <a href="#L-59">59</a> <a href="#L-60">60</a> <a href="#L-61">61</a> <a href="#L-62">62</a> <a href="#L-63">63</a> <a href="#L-64">64</a> <a href="#L-65">65</a> <a href="#L-66">66</a> <a href="#L-67">67</a> <a href="#L-68">68</a> <a href="#L-69">69</a> <a href="#L-70">70</a> <a href="#L-71">71</a> <a href="#L-72">72</a> <a href="#L-73">73</a> <a href="#L-74">74</a> <a href="#L-75">75</a> <a href="#L-76">76</a> <a href="#L-77">77</a> <a href="#L-78">78</a> <a href="#L-79">79</a> <a href="#L-80">80</a> <a href="#L-81">81</a> <a href="#L-82">82</a> <a href="#L-83">83</a> <a href="#L-84">84</a> <a href="#L-85">85</a> <a href="#L-86">86</a></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span id="L-1"><a name="L-1"></a>If you are planning on running Tomcat in a production environment, it is advisable that you install the native library. The native library will improve the performance of your Tomcat installation. </span><span id="L-2"><a name="L-2"></a> </span><span id="L-3"><a name="L-3"></a>The OS X developer tools must be installed. </span><span id="L-4"><a name="L-4"></a> </span><span id="L-5"><a name="L-5"></a>Download and unpack Apache Portable Runtime (APR) </span><span id="L-6"><a name="L-6"></a> </span><span id="L-7"><a name="L-7"></a>Download apr-1.3.x-src.tar.gz source release archive from the Apache APR Download Page </span><span id="L-8"><a name="L-8"></a> </span><span id="L-9"><a name="L-9"></a>Unpack the source code into the directory of your choice. /usr/local/src is a suggestion. </span><span id="L-10"><a name="L-10"></a> </span><span id="L-11"><a name="L-11"></a>Build and install APR </span><span id="L-12"><a name="L-12"></a> </span><span id="L-13"><a name="L-13"></a># Change to the APR source directory </span><span id="L-14"><a name="L-14"></a>cd /usr/local/src/apr-1.3.x </span><span id="L-15"><a name="L-15"></a> </span><span id="L-16"><a name="L-16"></a># Build the make file </span><span id="L-17"><a name="L-17"></a>./configure </span><span id="L-18"><a name="L-18"></a> </span><span id="L-19"><a name="L-19"></a># Users of 64-bit Java 6 should use the following configure command: </span><span id="L-20"><a name="L-20"></a>CFLAGS=&#39;-arch x86_64&#39; ./configure </span><span id="L-21"><a name="L-21"></a> </span><span id="L-22"><a name="L-22"></a># Make the library </span><span id="L-23"><a name="L-23"></a>make </span><span id="L-24"><a name="L-24"></a> </span><span id="L-25"><a name="L-25"></a># Test the build (Takes a while) </span><span id="L-26"><a name="L-26"></a>make test </span><span id="L-27"><a name="L-27"></a> </span><span id="L-28"><a name="L-28"></a># Install APR </span><span id="L-29"><a name="L-29"></a>make install </span><span id="L-30"><a name="L-30"></a> </span><span id="L-31"><a name="L-31"></a>Build the Tomcat Native Library </span><span id="L-32"><a name="L-32"></a> </span><span id="L-33"><a name="L-33"></a># Change directories to Tomcat Binaries </span><span id="L-34"><a name="L-34"></a>cd /Library/Tomcat/Home/bin </span><span id="L-35"><a name="L-35"></a> </span><span id="L-36"><a name="L-36"></a># Unpack the native library source code </span><span id="L-37"><a name="L-37"></a>tar -xvzf tomcat-native.tar.gz </span><span id="L-38"><a name="L-38"></a> </span><span id="L-39"><a name="L-39"></a># Change into the native source directory </span><span id="L-40"><a name="L-40"></a>cd tomcat-native-1.1.20-src/jni/native </span><span id="L-41"><a name="L-41"></a> </span><span id="L-42"><a name="L-42"></a># Build the make file for Java 5 </span><span id="L-43"><a name="L-43"></a>./configure --with-apr=/usr/local/apr --with-ssl=/usr # With SSL </span><span id="L-44"><a name="L-44"></a>./configure --with-apr=/usr/local/apr --without-ssl # Without SSL </span><span id="L-45"><a name="L-45"></a> </span><span id="L-46"><a name="L-46"></a># Build the make file for Java 6 </span><span id="L-47"><a name="L-47"></a>./configure --with-apr=/usr/local/apr --with-ssl=/usr --with-java-home=/System/Library/Frameworks/JavaVM.framework/ # With SSL </span><span id="L-48"><a name="L-48"></a>./configure --with-apr=/usr/local/apr --without-ssl --with-java-home=/System/Library/Frameworks/JavaVM.framework/ # Without SSL </span><span id="L-49"><a name="L-49"></a> </span><span id="L-50"><a name="L-50"></a># Users of 64-bit Java 6 should use the following configure command: </span><span id="L-51"><a name="L-51"></a>CFLAGS=&#39;-arch x86_64&#39; ./configure --with-apr=/usr/local/apr --with-ssl=/usr/ssl --with-java-home=/System/Library/Frameworks/JavaVM.framework/ </span><span id="L-52"><a name="L-52"></a> </span><span id="L-53"><a name="L-53"></a># Make </span><span id="L-54"><a name="L-54"></a>make </span><span id="L-55"><a name="L-55"></a> </span><span id="L-56"><a name="L-56"></a># Copy the native library to /usr/lib/java </span><span id="L-57"><a name="L-57"></a>sudo cp .libs/libtcnative-1.0.1.20.dylib /usr/lib/java </span><span id="L-58"><a name="L-58"></a> </span><span id="L-59"><a name="L-59"></a># Create a symbolic link in /usr/lib/java to the native library </span><span id="L-60"><a name="L-60"></a>cd /usr/lib/java </span><span id="L-61"><a name="L-61"></a>sudo ln -sfhv libtcnative-1.0.1.20.dylib libtcnative-1.dylib </span><span id="L-62"><a name="L-62"></a>sudo ln -sfhv libtcnative-1.dylib libtcnative-1.jnilib </span><span id="L-63"><a name="L-63"></a> </span><span id="L-64"><a name="L-64"></a># Restart Tomcat </span><span id="L-65"><a name="L-65"></a>cd /Library/Tomcat/Home/bin </span><span id="L-66"><a name="L-66"></a>./shutdown.sh </span><span id="L-67"><a name="L-67"></a>./startup.sh </span><span id="L-68"><a name="L-68"></a> </span><span id="L-69"><a name="L-69"></a># Check the log to make sure APR is loaded </span><span id="L-70"><a name="L-70"></a>cd ../logs </span><span id="L-71"><a name="L-71"></a>tail -n 30 catalina.out </span><span id="L-72"><a name="L-72"></a>You should see the following message: </span><span id="L-73"><a name="L-73"></a>INFO: Loaded APR based Apache Tomcat Native library 1.1.20. </span><span id="L-74"><a name="L-74"></a> </span><span id="L-75"><a name="L-75"></a># There has been a problem with the pollersize setting that has appeared, disappeared and then reappeared. If you get the error: </span><span id="L-76"><a name="L-76"></a>INFO: Failed to create poller with specified size of 8192 </span><span id="L-77"><a name="L-77"></a>You will have to edit server.xml. </span><span id="L-78"><a name="L-78"></a>cd ../conf </span><span id="L-79"><a name="L-79"></a>nano server.xml </span><span id="L-80"><a name="L-80"></a> </span><span id="L-81"><a name="L-81"></a># Change the following line ... </span><span id="L-82"><a name="L-82"></a>&lt;!-- Define an AJP 1.3 Connector on port 8009 --&gt; </span><span id="L-83"><a name="L-83"></a>&lt;Connector port=&quot;8009&quot; protocol=&quot;AJP/1.3&quot; redirectPort=&quot;8443&quot; /&gt; </span><span id="L-84"><a name="L-84"></a> </span><span id="L-85"><a name="L-85"></a># To .. </span><span id="L-86"><a name="L-86"></a>&lt;Connector port=&quot;8009&quot; protocol=&quot;AJP/1.3&quot; pollerSize=&quot;1024&quot; redirectPort=&quot;8443&quot; /&gt; </span></pre></div> </td></tr></table>
tomcat