Class HttpServer

java.lang.Object
nablarch.fw.HandlerQueueManager<HttpServer>
nablarch.fw.web.HttpServer
All Implemented Interfaces:
nablarch.fw.Handler<nablarch.fw.web.HttpRequest,nablarch.fw.web.HttpResponse>, nablarch.fw.web.HttpRequestHandler

@Published(tag="architect") public abstract class HttpServer extends nablarch.fw.HandlerQueueManager<HttpServer> implements nablarch.fw.web.HttpRequestHandler
エンベディドHTTPサーバー&\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30b3\u30f3\u30c6\u30ca。
 主に単体テスト時の画面確認や打鍵テストで使用することを想定した、
 JVMプロセス内の1スレッドとして動作する軽量アプリケーションサーバである。
 現行の実装では、内部的にJettyサーバを使用しており、
 本クラスは単なるラッパーに過ぎない。
 
Author:
Iwauo Tajima <iwauo@tis.co.jp>
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    サーバインスタンスを生成する。
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    dumpHttpMessage(nablarch.fw.web.HttpRequest req, nablarch.fw.web.HttpResponse res)
    HTTPレスポンスボディをローカルファイルに出力する。
    List<nablarch.fw.Handler>
    この実装では、サーバが処理を委譲するフロントコントローラ内の ハンドラキューを返す。
    HTTPダンプの出力先ファイルを取得する。
    HTTPダンプの出力先フォルダを返す。
    int
    このサーバが使用するポート番号を取得する。
    本サーバにデプロイされるWARのコンテキストパスを返す。
    protected File
     
    nablarch.fw.web.ResourceLocator
    このサーバにデプロイするWARのパスを返す。
    protected List<nablarch.fw.web.ResourceLocator>
     
    protected nablarch.fw.web.servlet.WebFrontController
     
    boolean
    HTTPダンプ機能が有効化されているか?
    abstract HttpServer
    サーバスレッドが終了するまでカレントスレッドをwaitさせる。
    protected String
    rewriteUriPath(String html, nablarch.fw.web.HttpRequest req)
    HTML中のURI型の参照先を、ダンプHTML用に書き換える。
    void
    setDumpVariableItem(boolean dumpVariableItem)
    ダンプHTMLへの可変項目の出力可否を設定する。
    setHttpDumpEnabled(boolean enabled)
    HTTPダンプ機能の有効化/無効化を設定する。
    HTTPダンプの出力先ファイルパスを指定する。
    HTTPダンプの出力先フォルダのパスを設定する。 また、HTTPダンプ機能が無効化されている場合は有効化される。
    setPort(int port)
    このサーバが使用するポート番号を設定する。
    ベースURIを設定する。
    context用の一時ディレクトリパスを指定する。 本パスを指定した場合、jspのコンパイル後のクラスなどはこのディレクトリ配下に保存される。
    setWarBasePath(String warBasePath)
    このサーバにデプロイするWARのパスを設定する。
    setWarBasePaths(List<nablarch.fw.web.ResourceLocator> warBasePaths)
    このサーバにデプロイするWARのパスを複数設定する。 引数で渡されたリストの順にリソースが探索される。
    abstract HttpServer
    サーバを起動する。
    abstract HttpServer
    このサーバをテストモードで起動する。

    Methods inherited from class nablarch.fw.HandlerQueueManager

    addHandler, addHandler, addHandler, addHandler, addHandler, addHandlers, clearHandlers, getHandlerOf, getMethodBinder, setHandlerQueue, setMethodBinder

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface nablarch.fw.web.HttpRequestHandler

    handle
  • Constructor Details

    • HttpServer

      public HttpServer()
      サーバインスタンスを生成する。
  • Method Details

    • start

      public abstract HttpServer start()
      サーバを起動する。
      Returns:
      このオブジェクト自体
    • startLocal

      public abstract HttpServer startLocal()
      このサーバをテストモードで起動する。
      Returns:
      このオブジェクト自体
    • join

      public abstract HttpServer join()
      サーバスレッドが終了するまでカレントスレッドをwaitさせる。
      Returns:
      このオブジェクト自体
    • getHandlerQueue

      public List<nablarch.fw.Handler> getHandlerQueue()
      この実装では、サーバが処理を委譲するフロントコントローラ内の ハンドラキューを返す。
      Specified by:
      getHandlerQueue in class nablarch.fw.HandlerQueueManager<HttpServer>
    • getWebFrontController

      protected nablarch.fw.web.servlet.WebFrontController getWebFrontController()
    • getServletContextPath

      public String getServletContextPath()
      本サーバにデプロイされるWARのコンテキストパスを返す。
      Returns:
      コンテキストパス
    • setServletContextPath

      public HttpServer setServletContextPath(String path)
      ベースURIを設定する。
       本サーバにデプロイされるWARのコンテキストパスを設定する。
       デフォルト値は"/"である。
       
      Parameters:
      path - コンテキストパス
      Returns:
      このオブジェクト自体
    • getPort

      public int getPort()
      このサーバが使用するポート番号を取得する。
      Returns:
      ポート番号
    • setPort

      public HttpServer setPort(int port)
      このサーバが使用するポート番号を設定する。
       デフォルトのポート番号は7777である。
       
      Parameters:
      port - ポート番号
      Returns:
      このオブジェクト自体
    • setWarBasePath

      public HttpServer setWarBasePath(String warBasePath)
      このサーバにデプロイするWARのパスを設定する。
       明示的に指定しなかった場合のデフォルト値は、
       "classpath://nablarch/fw/web/servlet/docroot/"
       
      Parameters:
      warBasePath - このサーバにデプロイするWARのパス
      Returns:
      このオブジェクト自体
    • setWarBasePaths

      public HttpServer setWarBasePaths(List<nablarch.fw.web.ResourceLocator> warBasePaths)
      このサーバにデプロイするWARのパスを複数設定する。 引数で渡されたリストの順にリソースが探索される。
       明示的に指定しなかった場合のデフォルト値は、
       "classpath://nablarch/fw/web/servlet/docroot/"
       
      Parameters:
      warBasePaths - このサーバにデプロイするWARのパス
      Returns:
      このオブジェクト自体
    • getWarBasePath

      public nablarch.fw.web.ResourceLocator getWarBasePath()
      このサーバにデプロイするWARのパスを返す。
      Returns:
      このサーバにデプロイするWARのパス
    • getWarBasePaths

      protected List<nablarch.fw.web.ResourceLocator> getWarBasePaths()
    • setHttpDumpEnabled

      public HttpServer setHttpDumpEnabled(boolean enabled)
      HTTPダンプ機能の有効化/無効化を設定する。
       デフォルトでは無効化されている。
       
      Parameters:
      enabled - HTTPダンプを有効化する場合はtrue、無効化する場合はfalseを設定する。
      Returns:
      このオブジェクト自体
      See Also:
    • isHttpDumpEnabled

      public boolean isHttpDumpEnabled()
      HTTPダンプ機能が有効化されているか?
      Returns:
      HTTPダンプ機能が有効であればtrueを返す。
    • setHttpDumpRoot

      public HttpServer setHttpDumpRoot(String path)
      HTTPダンプの出力先フォルダのパスを設定する。 また、HTTPダンプ機能が無効化されている場合は有効化される。
       デフォルトでは、カレントパス直下の"http_dump"ディレクトリになる。
       ダンプ出力時に当該のディレクトリが存在しなかった場合は自動的に作成される。
       
      Parameters:
      path - HTTPダンプの出力先フォルダ
      Returns:
      このオブジェクト自体
    • getHttpDumpRoot

      public File getHttpDumpRoot()
      HTTPダンプの出力先フォルダを返す。
      Returns:
      HTTPダンプの出力先フォルダ
    • setHttpDumpFilePath

      public HttpServer setHttpDumpFilePath(String path)
      HTTPダンプの出力先ファイルパスを指定する。
      Parameters:
      path - 出力先ファイルパス
      Returns:
      このオブジェクト自体
    • getHttpDumpFile

      public File getHttpDumpFile()
      HTTPダンプの出力先ファイルを取得する。
      Returns:
      出力先ファイル
    • setTempDirectory

      public HttpServer setTempDirectory(String path)
      context用の一時ディレクトリパスを指定する。 本パスを指定した場合、jspのコンパイル後のクラスなどはこのディレクトリ配下に保存される。
      Parameters:
      path - context用の一時ディレクトリパス
      Returns:
      このオブジェクト自体
    • getTempDirectory

      protected File getTempDirectory()
    • setDumpVariableItem

      public void setDumpVariableItem(boolean dumpVariableItem)
      ダンプHTMLへの可変項目の出力可否を設定する。
      Parameters:
      dumpVariableItem - dumpVariableItem ダンプHTMLへの可変項目の出力可否
    • dumpHttpMessage

      protected void dumpHttpMessage(nablarch.fw.web.HttpRequest req, nablarch.fw.web.HttpResponse res)
      HTTPレスポンスボディをローカルファイルに出力する。
      Parameters:
      req - HTTPリクエストオブジェクト
      res - HTTPレスポンスオブジェクト
    • rewriteUriPath

      protected String rewriteUriPath(String html, nablarch.fw.web.HttpRequest req)
      HTML中のURI型の参照先を、ダンプHTML用に書き換える。
      Parameters:
      html - HTML文字列
      req - HttpRequest
      Returns:
      編集後文字列