You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by bu...@apache.org on 2014/03/23 03:07:58 UTC
svn commit: r903071 [2/2] - in /websites/staging/thrift/trunk/content: ./
tutorial/java.html
Modified: websites/staging/thrift/trunk/content/tutorial/java.html
==============================================================================
--- websites/staging/thrift/trunk/content/tutorial/java.html (original)
+++ websites/staging/thrift/trunk/content/tutorial/java.html Sun Mar 23 02:07:57 2014
@@ -86,167 +86,167 @@
</ol>
<h3 id="prerequisites">Prerequisites</h3>
<h3 id="client">Client</h3>
-<p><div class="codehilite"><pre><span class="kn">import</span> <span class="nn">tutorial.<em></span><span class="o">;</span>
-<span class="kn">import</span> <span class="nn">shared.</em></span><span class="o">;</span></p>
-<p><span class="kn">import</span> <span class="nn">org.apache.thrift.TException</span><span class="o">;</span>
+<div class="codehilite"><pre><span class="kn">import</span> <span class="nn">tutorial.*</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">shared.*</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">org.apache.thrift.TException</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TSSLTransportFactory</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TTransport</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TSocket</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TSSLTransportFactory.TSSLTransportParameters</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.protocol.TBinaryProtocol</span><span class="o">;</span>
-<span class="kn">import</span> <span class="nn">org.apache.thrift.protocol.TProtocol</span><span class="o">;</span></p>
-<p><span class="kd">public</span> <span class="kd">class</span> <span class="nc">JavaClient</span> <span class="o">{</span>
- <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span> <span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span></p>
-<div class="codehilite"><pre><span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>args<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>length<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>!=<span class="nt"></span></span> <span class="nt"><span</span> <sp
an class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>Please enter <span class="ni">&#39;</span>simple<span class="ni">&#39;</span> or <span class="ni">&#39;</span>secure<span class="ni">&#39;&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>exit<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>0<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
-
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>try<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TTransport<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>if<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>args<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>[<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>0<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>].<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">&
gt;</span>contains<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span class="ni">&quot;</span>simple<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>))<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TSocket<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span class="ni">&quot;</span>localhost<span class="ni">&quot;
</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>,<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>9090<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>open<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>else<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"cm"</span><span class="nt">></span>/*<span class="nt"></span></span>
-</pre></div>
+<span class="kn">import</span> <span class="nn">org.apache.thrift.protocol.TProtocol</span><span class="o">;</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">JavaClient</span> <span class="o">{</span>
+ <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span> <span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
-<p><span class="cm"> * Similar to the server, you can use the parameters to setup client parameters or</span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">args</span><span class="o">.</span><span class="na">length</span> <span class="o">!=</span> <span class="mi">1</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Please enter 'simple' or 'secure'"</span><span class="o">);</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">exit</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
+ <span class="o">}</span>
+
+ <span class="k">try</span> <span class="o">{</span>
+ <span class="n">TTransport</span> <span class="n">transport</span><span class="o">;</span>
+ <span class="k">if</span> <span class="o">(</span><span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">].</span><span class="na">contains</span><span class="o">(</span><span class="s">"simple"</span><span class="o">))</span> <span class="o">{</span>
+ <span class="n">transport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSocket</span><span class="o">(</span><span class="s">"localhost"</span><span class="o">,</span> <span class="mi">9090</span><span class="o">);</span>
+ <span class="n">transport</span><span class="o">.</span><span class="na">open</span><span class="o">();</span>
+ <span class="o">}</span>
+ <span class="k">else</span> <span class="o">{</span>
+ <span class="cm">/*</span>
+<span class="cm"> * Similar to the server, you can use the parameters to setup client parameters or</span>
<span class="cm"> * use the default settings. On the client side, you will need a TrustStore which</span>
<span class="cm"> * contains the trusted certificate along with the public key. </span>
<span class="cm"> * For this example it's a self-signed cert. </span>
-<span class="cm"> <em>/</span>
+<span class="cm"> */</span>
<span class="n">TSSLTransportParameters</span> <span class="n">params</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSSLTransportParameters</span><span class="o">();</span>
<span class="n">params</span><span class="o">.</span><span class="na">setTrustStore</span><span class="o">(</span><span class="s">"../../lib/java/test/.truststore"</span><span class="o">,</span> <span class="s">"thrift"</span><span class="o">,</span> <span class="s">"SunX509"</span><span class="o">,</span> <span class="s">"JKS"</span><span class="o">);</span>
- <span class="cm">/</em></span>
+ <span class="cm">/*</span>
<span class="cm"> * Get a client transport instead of a server transport. The connection is opened on</span>
<span class="cm"> * invocation of the factory method, no need to specifically call open()</span>
<span class="cm"> */</span>
<span class="n">transport</span> <span class="o">=</span> <span class="n">TSSLTransportFactory</span><span class="o">.</span><span class="na">getClientSocket</span><span class="o">(</span><span class="s">"localhost"</span><span class="o">,</span> <span class="mi">9091</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="n">params</span><span class="o">);</span>
- <span class="o">}</span></p>
-<div class="codehilite"><pre> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TProtocol<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>protocol<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TBinaryProtocol<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<
span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Calculator<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>Client<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>client<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</
span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Calculator<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>Client<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>protocol<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>perform<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>client<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>transport<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>close<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>TException<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>x<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span
class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>x<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>printStackTrace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
-</pre></div>
+ <span class="o">}</span>
+
+ <span class="n">TProtocol</span> <span class="n">protocol</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TBinaryProtocol</span><span class="o">(</span><span class="n">transport</span><span class="o">);</span>
+ <span class="n">Calculator</span><span class="o">.</span><span class="na">Client</span> <span class="n">client</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="o">.</span><span class="na">Client</span><span class="o">(</span><span class="n">protocol</span><span class="o">);</span>
+
+ <span class="n">perform</span><span class="o">(</span><span class="n">client</span><span class="o">);</span>
+ <span class="n">transport</span><span class="o">.</span><span class="na">close</span><span class="o">();</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">TException</span> <span class="n">x</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">x</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
-<p><span class="o">}</span></p>
-<p><span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">perform</span><span class="o">(</span><span class="n">Calculator</span><span class="o">.</span><span class="na">Client</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">TException</span>
+ <span class="kd">private</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">perform</span><span class="o">(</span><span class="n">Calculator</span><span class="o">.</span><span class="na">Client</span> <span class="n">client</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">TException</span>
<span class="o">{</span>
<span class="n">client</span><span class="o">.</span><span class="na">ping</span><span class="o">();</span>
- <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"ping()"</span><span class="o">);</span></p>
-<div class="codehilite"><pre><span class="nt"><span</span> <span class="na">class=</span><span class="s">"kt"</span><span class="nt">></span>int<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>sum<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>client<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>add<span class="nt"></span><span</span> <
span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>,<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span cla
ss="ni">&quot;</span>1+1=<span class="ni">&quot;</span><span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>sum<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Work<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>op<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Operation<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na&
quot;</span><span class="nt">></span>DIVIDE<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>num1<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>num2<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>0<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>try<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kt"</span><span class="nt">></span>int<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>quotient<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>client<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>calculate<span class="nt"></span><span</span> <span class="na">
class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>,<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>Whoa we can divide by 0<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>InvalidOperation<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>io<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span
> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>Invalid operation: <span class="ni">&quot;</span><span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>io<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>why<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
-
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>op<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Operation<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na&
quot;</span><span class="nt">></span>SUBTRACT<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>num1<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>15<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>num2<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>10<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>;<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>try<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kt"</span><span class="nt">></span>int<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>diff<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>client<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>calculate<span class="nt"></span><span</span> <span class="na">clas
s=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>,<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>work<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>15-10=<span class="ni">&quot;</span><span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>diff<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>InvalidOperation<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>io<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span
> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>Invalid operation: <span class="ni">&quot;</span><span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>io<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>why<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"ping()"</span><span class="o">);</span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>SharedStruct<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>log<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>client<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>getStruct<span class="nt"></span><span</span> <span class="na"
>class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"mi"</span><span class="nt">></span>1<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span cla
ss="ni">&quot;</span>Check log: <span class="ni">&quot;</span><span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>+<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>log<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>value<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
-</pre></div>
+ <span class="kt">int</span> <span class="n">sum</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">add</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span><span class="mi">1</span><span class="o">);</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"1+1="</span> <span class="o">+</span> <span class="n">sum</span><span class="o">);</span>
+ <span class="n">Work</span> <span class="n">work</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Work</span><span class="o">();</span>
-<p><span class="o">}</span>
+ <span class="n">work</span><span class="o">.</span><span class="na">op</span> <span class="o">=</span> <span class="n">Operation</span><span class="o">.</span><span class="na">DIVIDE</span><span class="o">;</span>
+ <span class="n">work</span><span class="o">.</span><span class="na">num1</span> <span class="o">=</span> <span class="mi">1</span><span class="o">;</span>
+ <span class="n">work</span><span class="o">.</span><span class="na">num2</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span>
+ <span class="k">try</span> <span class="o">{</span>
+ <span class="kt">int</span> <span class="n">quotient</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">calculate</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="n">work</span><span class="o">);</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Whoa we can divide by 0"</span><span class="o">);</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">InvalidOperation</span> <span class="n">io</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Invalid operation: "</span> <span class="o">+</span> <span class="n">io</span><span class="o">.</span><span class="na">why</span><span class="o">);</span>
+ <span class="o">}</span>
+
+ <span class="n">work</span><span class="o">.</span><span class="na">op</span> <span class="o">=</span> <span class="n">Operation</span><span class="o">.</span><span class="na">SUBTRACT</span><span class="o">;</span>
+ <span class="n">work</span><span class="o">.</span><span class="na">num1</span> <span class="o">=</span> <span class="mi">15</span><span class="o">;</span>
+ <span class="n">work</span><span class="o">.</span><span class="na">num2</span> <span class="o">=</span> <span class="mi">10</span><span class="o">;</span>
+ <span class="k">try</span> <span class="o">{</span>
+ <span class="kt">int</span> <span class="n">diff</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">calculate</span><span class="o">(</span><span class="mi">1</span><span class="o">,</span> <span class="n">work</span><span class="o">);</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"15-10="</span> <span class="o">+</span> <span class="n">diff</span><span class="o">);</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">InvalidOperation</span> <span class="n">io</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Invalid operation: "</span> <span class="o">+</span> <span class="n">io</span><span class="o">.</span><span class="na">why</span><span class="o">);</span>
+ <span class="o">}</span>
+
+ <span class="n">SharedStruct</span> <span class="n">log</span> <span class="o">=</span> <span class="n">client</span><span class="o">.</span><span class="na">getStruct</span><span class="o">(</span><span class="mi">1</span><span class="o">);</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Check log: "</span> <span class="o">+</span> <span class="n">log</span><span class="o">.</span><span class="na">value</span><span class="o">);</span>
+ <span class="o">}</span>
<span class="o">}</span>
-</pre></div></p>
+</pre></div>
+
<h3 id="server">Server</h3>
-<p><div class="codehilite"><pre><span class="kn">import</span> <span class="nn">org.apache.thrift.server.TServer</span><span class="o">;</span>
+<div class="codehilite"><pre><span class="kn">import</span> <span class="nn">org.apache.thrift.server.TServer</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.server.TServer.Args</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.server.TSimpleServer</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.server.TThreadPoolServer</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TSSLTransportFactory</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TServerSocket</span><span class="o">;</span>
<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TServerTransport</span><span class="o">;</span>
-<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TSSLTransportFactory.TSSLTransportParameters</span><span class="o">;</span></p>
-<p><span class="c1">// Generated code</span>
-<span class="kn">import</span> <span class="nn">tutorial.<em></span><span class="o">;</span>
-<span class="kn">import</span> <span class="nn">shared.</em></span><span class="o">;</span></p>
-<p><span class="kn">import</span> <span class="nn">java.util.HashMap</span><span class="o">;</span></p>
-<p><span class="kd">public</span> <span class="kd">class</span> <span class="nc">JavaServer</span> <span class="o">{</span></p>
-<p><span class="kd">public</span> <span class="kd">static</span> <span class="n">CalculatorHandler</span> <span class="n">handler</span><span class="o">;</span></p>
-<p><span class="kd">public</span> <span class="kd">static</span> <span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span> <span class="n">processor</span><span class="o">;</span></p>
-<p><span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span> <span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
+<span class="kn">import</span> <span class="nn">org.apache.thrift.transport.TSSLTransportFactory.TSSLTransportParameters</span><span class="o">;</span>
+
+<span class="c1">// Generated code</span>
+<span class="kn">import</span> <span class="nn">tutorial.*</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">shared.*</span><span class="o">;</span>
+
+<span class="kn">import</span> <span class="nn">java.util.HashMap</span><span class="o">;</span>
+
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">JavaServer</span> <span class="o">{</span>
+
+ <span class="kd">public</span> <span class="kd">static</span> <span class="n">CalculatorHandler</span> <span class="n">handler</span><span class="o">;</span>
+
+ <span class="kd">public</span> <span class="kd">static</span> <span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span> <span class="n">processor</span><span class="o">;</span>
+
+ <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span> <span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="o">{</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">handler</span> <span class="o">=</span> <span class="k">new</span> <span class="n">CalculatorHandler</span><span class="o">();</span>
- <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span><span class="o">(</span><span class="n">handler</span><span class="o">);</span></p>
-<div class="codehilite"><pre> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Runnable<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>simple<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Runnable<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>()<span class
="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>public<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kt"</span><span class="nt">></span>void<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>run<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>()<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>simple<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>processor<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>};<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Runnable<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>secure<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>=<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Runnable<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>()<span class="nt"></span></span> <s
pan class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kd"</span><span class="nt">></span>public<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"kt"</span><span class="nt">></span>void<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>run<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>()<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>secure<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>processor<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>};<span class="nt"></span></span>
-
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>Thread<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>simple<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>).<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>start<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span
class="nt">></span>();<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>new<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"nf"</span><span class="nt">></span>Thread<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>secure<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>).<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>start<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span
class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Exception<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>x<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span
class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>x<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>printStackTrace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
-</pre></div>
+ <span class="n">processor</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span><span class="o">(</span><span class="n">handler</span><span class="o">);</span>
+ <span class="n">Runnable</span> <span class="n">simple</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Runnable</span><span class="o">()</span> <span class="o">{</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">run</span><span class="o">()</span> <span class="o">{</span>
+ <span class="n">simple</span><span class="o">(</span><span class="n">processor</span><span class="o">);</span>
+ <span class="o">}</span>
+ <span class="o">};</span>
+ <span class="n">Runnable</span> <span class="n">secure</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Runnable</span><span class="o">()</span> <span class="o">{</span>
+ <span class="kd">public</span> <span class="kt">void</span> <span class="nf">run</span><span class="o">()</span> <span class="o">{</span>
+ <span class="n">secure</span><span class="o">(</span><span class="n">processor</span><span class="o">);</span>
+ <span class="o">}</span>
+ <span class="o">};</span>
+
+ <span class="k">new</span> <span class="nf">Thread</span><span class="o">(</span><span class="n">simple</span><span class="o">).</span><span class="na">start</span><span class="o">();</span>
+ <span class="k">new</span> <span class="nf">Thread</span><span class="o">(</span><span class="n">secure</span><span class="o">).</span><span class="na">start</span><span class="o">();</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">x</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">x</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
-<p><span class="o">}</span></p>
-<p><span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">simple</span><span class="o">(</span><span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span> <span class="n">processor</span><span class="o">)</span> <span class="o">{</span>
+ <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">simple</span><span class="o">(</span><span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span> <span class="n">processor</span><span class="o">)</span> <span class="o">{</span>
<span class="k">try</span> <span class="o">{</span>
<span class="n">TServerTransport</span> <span class="n">serverTransport</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TServerSocket</span><span class="o">(</span><span class="mi">9090</span><span class="o">);</span>
- <span class="n">TServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSimpleServer</span><span class="o">(</span><span class="k">new</span> <span class="n">Args</span><span class="o">(</span><span class="n">serverTransport</span><span class="o">).</span><span class="na">processor</span><span class="o">(</span><span class="n">processor</span><span class="o">));</span></p>
-<div class="codehilite"><pre> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"c1"</span><span class="nt">></span>// Use this for a multithreaded server<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"c1"</span><span class="nt">></span>// TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(serverTransport).processor(processor));<span class="nt"></span></span>
-
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>Starting the simple server...<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>server<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>serve<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Exception<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>e<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span
class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>e<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>printStackTrace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
-</pre></div>
+ <span class="n">TServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSimpleServer</span><span class="o">(</span><span class="k">new</span> <span class="n">Args</span><span class="o">(</span><span class="n">serverTransport</span><span class="o">).</span><span class="na">processor</span><span class="o">(</span><span class="n">processor</span><span class="o">));</span>
+ <span class="c1">// Use this for a multithreaded server</span>
+ <span class="c1">// TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(serverTransport).processor(processor));</span>
-<p><span class="o">}</span></p>
-<p><span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">secure</span><span class="o">(</span><span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span> <span class="n">processor</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Starting the simple server..."</span><span class="o">);</span>
+ <span class="n">server</span><span class="o">.</span><span class="na">serve</span><span class="o">();</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
+
+ <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">secure</span><span class="o">(</span><span class="n">Calculator</span><span class="o">.</span><span class="na">Processor</span> <span class="n">processor</span><span class="o">)</span> <span class="o">{</span>
<span class="k">try</span> <span class="o">{</span>
- <span class="cm">/<em></span>
+ <span class="cm">/*</span>
<span class="cm"> * Use TSSLTransportParameters to setup the required SSL parameters. In this example</span>
<span class="cm"> * we are setting the keystore and the keystore password. Other things like algorithms,</span>
<span class="cm"> * cipher suites, client auth etc can be set. </span>
-<span class="cm"> </em>/</span>
+<span class="cm"> */</span>
<span class="n">TSSLTransportParameters</span> <span class="n">params</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSSLTransportParameters</span><span class="o">();</span>
<span class="c1">// The Keystore contains the private key</span>
- <span class="n">params</span><span class="o">.</span><span class="na">setKeyStore</span><span class="o">(</span><span class="s">"../../lib/java/test/.keystore"</span><span class="o">,</span> <span class="s">"thrift"</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span></p>
-<div class="codehilite"><pre> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"cm"</span><span class="nt">></span>/*<span class="nt"></span></span>
-</pre></div>
-
+ <span class="n">params</span><span class="o">.</span><span class="na">setKeyStore</span><span class="o">(</span><span class="s">"../../lib/java/test/.keystore"</span><span class="o">,</span> <span class="s">"thrift"</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="kc">null</span><span class="o">);</span>
-<p><span class="cm"> * Use any of the TSSLTransportFactory to get a server transport with the appropriate</span>
+ <span class="cm">/*</span>
+<span class="cm"> * Use any of the TSSLTransportFactory to get a server transport with the appropriate</span>
<span class="cm"> * SSL configuration. You can use the default settings if properties are set in the command line.</span>
<span class="cm"> * Ex: -Djavax.net.ssl.keyStore=.keystore and -Djavax.net.ssl.keyStorePassword=thrift</span>
<span class="cm"> * </span>
@@ -254,21 +254,20 @@
<span class="cm"> * from the factory class. </span>
<span class="cm"> */</span>
<span class="n">TServerTransport</span> <span class="n">serverTransport</span> <span class="o">=</span> <span class="n">TSSLTransportFactory</span><span class="o">.</span><span class="na">getServerSocket</span><span class="o">(</span><span class="mi">9091</span><span class="o">,</span> <span class="mi">0</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="n">params</span><span class="o">);</span>
- <span class="n">TServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSimpleServer</span><span class="o">(</span><span class="k">new</span> <span class="n">Args</span><span class="o">(</span><span class="n">serverTransport</span><span class="o">).</span><span class="na">processor</span><span class="o">(</span><span class="n">processor</span><span class="o">));</span></p>
-<div class="codehilite"><pre> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"c1"</span><span class="nt">></span>// Use this for a multi threaded server<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"c1"</span><span class="nt">></span>// TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(serverTransport).processor(processor));<span class="nt"></span></span>
-
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>System<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>out<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>println<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"s"</span><span class="nt">></span><span c
lass="ni">&quot;</span>Starting the secure server...<span class="ni">&quot;</span><span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>);<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>server<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>serve<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"k"</span><span class="nt">></span>catch<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>(<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>Exception<span class="nt"></span></span> <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>e<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>)<span class="nt"></span></span> <span class="nt"><span</span> <span
class="na">class=</span><span class="s">"o"</span><span class="nt">></span>{<span class="nt"></span></span>
- <span class="nt"><span</span> <span class="na">class=</span><span class="s">"n"</span><span class="nt">></span>e<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>.<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"na"</span><span class="nt">></span>printStackTrace<span class="nt"></span><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>();<span class="nt"></span></span>
-<span class="nt"><span</span> <span class="na">class=</span><span class="s">"o"</span><span class="nt">></span>}<span class="nt"></span></span>
-</pre></div>
+ <span class="n">TServer</span> <span class="n">server</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TSimpleServer</span><span class="o">(</span><span class="k">new</span> <span class="n">Args</span><span class="o">(</span><span class="n">serverTransport</span><span class="o">).</span><span class="na">processor</span><span class="o">(</span><span class="n">processor</span><span class="o">));</span>
+ <span class="c1">// Use this for a multi threaded server</span>
+ <span class="c1">// TServer server = new TThreadPoolServer(new TThreadPoolServer.Args(serverTransport).processor(processor));</span>
-<p><span class="o">}</span>
+ <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"Starting the secure server..."</span><span class="o">);</span>
+ <span class="n">server</span><span class="o">.</span><span class="na">serve</span><span class="o">();</span>
+ <span class="o">}</span> <span class="k">catch</span> <span class="o">(</span><span class="n">Exception</span> <span class="n">e</span><span class="o">)</span> <span class="o">{</span>
+ <span class="n">e</span><span class="o">.</span><span class="na">printStackTrace</span><span class="o">();</span>
+ <span class="o">}</span>
+ <span class="o">}</span>
<span class="o">}</span>
-</pre></div></p>
+</pre></div>
+
<h2 id="additional-information">Additional Information</h2>
</div>
<div class="container">