<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" /><title>Main xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/apache/mina/examples/httpserver/Main.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="comment">/*</em>
<a name="2" href="#2">2</a>   <em class="comment"> *   @(#) $Id: Main.java 165578 2005-05-02 04:31:30Z trustin $</em>
<a name="3" href="#3">3</a>   <em class="comment"> *</em>
<a name="4" href="#4">4</a>   <em class="comment"> *   Copyright 2004 The Apache Software Foundation</em>
<a name="5" href="#5">5</a>   <em class="comment"> *</em>
<a name="6" href="#6">6</a>   <em class="comment"> *   Licensed under the Apache License, Version 2.0 (the "License");</em>
<a name="7" href="#7">7</a>   <em class="comment"> *   you may not use this file except in compliance with the License.</em>
<a name="8" href="#8">8</a>   <em class="comment"> *   You may obtain a copy of the License at</em>
<a name="9" href="#9">9</a>   <em class="comment"> *</em>
<a name="10" href="#10">10</a>  <em class="comment"> *       <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="11" href="#11">11</a>  <em class="comment"> *</em>
<a name="12" href="#12">12</a>  <em class="comment"> *   Unless required by applicable law or agreed to in writing, software</em>
<a name="13" href="#13">13</a>  <em class="comment"> *   distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="14" href="#14">14</a>  <em class="comment"> *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="15" href="#15">15</a>  <em class="comment"> *   See the License for the specific language governing permissions and</em>
<a name="16" href="#16">16</a>  <em class="comment"> *   limitations under the License.</em>
<a name="17" href="#17">17</a>  <em class="comment"> *</em>
<a name="18" href="#18">18</a>  <em class="comment"> */</em>
<a name="19" href="#19">19</a>  <strong>package</strong> <a href="../../../../../org/apache/mina/examples/httpserver/package-summary.html">org.apache.mina.examples.httpserver</a>;
<a name="20" href="#20">20</a>  
<a name="21" href="#21">21</a>  <strong>import</strong> org.apache.mina.common.TransportType;
<a name="22" href="#22">22</a>  <strong>import</strong> org.apache.mina.examples.echoserver.ssl.BogusSSLContextFactory;
<a name="23" href="#23">23</a>  <strong>import</strong> org.apache.mina.io.IoAcceptor;
<a name="24" href="#24">24</a>  <strong>import</strong> org.apache.mina.io.filter.SSLFilter;
<a name="25" href="#25">25</a>  <strong>import</strong> org.apache.mina.registry.Service;
<a name="26" href="#26">26</a>  <strong>import</strong> org.apache.mina.registry.ServiceRegistry;
<a name="27" href="#27">27</a>  <strong>import</strong> org.apache.mina.registry.SimpleServiceRegistry;
<a name="28" href="#28">28</a>  
<a name="29" href="#29">29</a>  <em>/**<em>*</em></em>
<a name="30" href="#30">30</a>  <em> * (&lt;b>Entry point&lt;/b>) HTTP server</em>
<a name="31" href="#31">31</a>  <em> * </em>
<a name="32" href="#32">32</a>  <em> * @author Trustin Lee (trustin@apache.org)</em>
<a name="33" href="#33">33</a>  <em> * @version $Rev: 165578 $, $Date: 2005-05-02 13:31:30 +0900 (월, 02  5월 2005) $</em>
<a name="34" href="#34">34</a>  <em> */</em>
<a name="35" href="#35">35</a>  <strong>public</strong> <strong>class</strong> <a href="../../../../../org/apache/mina/examples/httpserver/Main.html">Main</a>
<a name="36" href="#36">36</a>  {
<a name="37" href="#37">37</a>      <em>/**<em>* Choose your favorite port number. */</em></em>
<a name="38" href="#38">38</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> <strong>int</strong> PORT = 8081;
<a name="39" href="#39">39</a>      
<a name="40" href="#40">40</a>      <strong>private</strong> <strong>static</strong> <strong>final</strong> <strong>boolean</strong> USE_SSL = <strong>true</strong>;
<a name="41" href="#41">41</a>  
<a name="42" href="#42">42</a>      <strong>public</strong> <strong>static</strong> <strong>void</strong> main( String[] args ) throws Exception
<a name="43" href="#43">43</a>      {
<a name="44" href="#44">44</a>          ServiceRegistry registry = <strong>new</strong> SimpleServiceRegistry();
<a name="45" href="#45">45</a>          
<a name="46" href="#46">46</a>          <em class="comment">// Add SSL filter if SSL is enabled.</em>
<a name="47" href="#47">47</a>          <strong>if</strong>( USE_SSL )
<a name="48" href="#48">48</a>          {
<a name="49" href="#49">49</a>              addSSLSupport( registry );
<a name="50" href="#50">50</a>          }
<a name="51" href="#51">51</a>  
<a name="52" href="#52">52</a>          <em class="comment">// Bind</em>
<a name="53" href="#53">53</a>          Service service = <strong>new</strong> Service( <span class="string">"http"</span>, TransportType.SOCKET, PORT );
<a name="54" href="#54">54</a>          registry.bind( service, <strong>new</strong> HttpProtocolHandler() );
<a name="55" href="#55">55</a>  
<a name="56" href="#56">56</a>          System.out.println( <span class="string">"Listening on port "</span> + PORT );
<a name="57" href="#57">57</a>      }
<a name="58" href="#58">58</a>  
<a name="59" href="#59">59</a>  
<a name="60" href="#60">60</a>      <strong>private</strong> <strong>static</strong> <strong>void</strong> addSSLSupport( ServiceRegistry registry )
<a name="61" href="#61">61</a>          throws Exception
<a name="62" href="#62">62</a>      {
<a name="63" href="#63">63</a>          System.out.println( <span class="string">"SSL is enabled."</span> );
<a name="64" href="#64">64</a>          SSLFilter sslFilter =
<a name="65" href="#65">65</a>              <strong>new</strong> SSLFilter( BogusSSLContextFactory.getInstance( <strong>true</strong> ) );
<a name="66" href="#66">66</a>          IoAcceptor acceptor = registry.getIoAcceptor( TransportType.SOCKET );
<a name="67" href="#67">67</a>          acceptor.getFilterChain().addLast( <span class="string">"sslFilter"</span>, sslFilter );
<a name="68" href="#68">68</a>      }
<a name="69" href="#69">69</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

