@Published(tag="architect") public class HttpServer extends HandlerQueueManager<HttpServer> implements HttpRequestHandler
主に単体テスト時の画面確認や打鍵テストで使用することを想定した、 JVMプロセス内の1スレッドとして動作する軽量アプリケーションサーバである。 現行の実装では、内部的にJettyサーバを使用しており、 本クラスは単なるラッパーに過ぎない。
コンストラクタと説明 |
---|
HttpServer()
サーバインスタンスを生成する。
|
修飾子とタイプ | メソッドと説明 |
---|---|
java.util.List<Handler> |
getHandlerQueue()
現在のハンドラキューの内容を返す。
|
java.io.File |
getHttpDumpFile()
HTTPダンプの出力先ファイルを取得する。
|
java.io.File |
getHttpDumpRoot()
HTTPダンプの出力先フォルダを返す。
|
int |
getPort()
このサーバが使用するポート番号を取得する。
|
java.lang.String |
getServletContextPath()
本サーバにデプロイされるWARのコンテキストパスを返す。
|
ResourceLocator |
getWarBasePath()
このサーバにデプロイするWARのパスを返す。
|
HttpResponse |
handle(HttpRequest req,
ExecutionContext unused)
HTTPリクエストに対する処理を実行する。
|
boolean |
isHttpDumpEnabled()
HTTPダンプ機能が有効化されているか?
|
HttpServer |
join()
サーバスレッドが終了するまでカレントスレッドをwaitさせる。
|
protected java.lang.String |
rewriteUriPath(java.lang.String html,
HttpRequest req)
HTML中のURI型の参照先を、ダンプHTML用に書き換える。
|
void |
setDumpVariableItem(boolean dumpVariableItem)
ダンプHTMLへの可変項目の出力可否を設定する。
|
HttpServer |
setHttpDumpEnabled(boolean enabled)
HTTPダンプ機能の有効化/無効化を設定する。
|
HttpServer |
setHttpDumpFilePath(java.lang.String path)
HTTPダンプの出力先ファイルパスを指定する。
|
HttpServer |
setHttpDumpRoot(java.lang.String path)
HTTPダンプの出力先フォルダのパスを設定する。
|
HttpServer |
setPort(int port)
このサーバが使用するポート番号を設定する。
|
HttpServer |
setServletContextPath(java.lang.String path)
ベースURIを設定する。
|
HttpServer |
setTempDirectory(java.lang.String path)
context用の一時ディレクトリパスを指定する。
|
HttpServer |
setWarBasePath(java.lang.String warBasePath)
このサーバにデプロイするWARのパスを設定する。
|
HttpServer |
setWarBasePaths(java.util.List<ResourceLocator> warBasePaths)
このサーバにデプロイするWARのパスを複数設定する。
|
HttpServer |
start()
サーバを起動する。
|
HttpServer |
startLocal()
このサーバをテストモードで起動する。
|
addHandler, addHandler, addHandler, addHandler, addHandler, addHandlers, clearHandlers, getHandlerOf, getMethodBinder, setHandlerQueue, setMethodBinder
public java.util.List<Handler> getHandlerQueue()
getHandlerQueue
クラス内 HandlerQueueManager<HttpServer>
public java.lang.String getServletContextPath()
public HttpServer setServletContextPath(java.lang.String path)
本サーバにデプロイされるWARのコンテキストパスを設定する。 デフォルト値は"/"である。
path
- コンテキストパスpublic int getPort()
public HttpServer setPort(int port)
デフォルトのポート番号は7777である。
port
- ポート番号public HttpServer start()
サーバスレッドを生成し、port()メソッドで指定されたポート番号上の HTTPリクエストに対して処理を行う。
public HttpServer join()
public HttpServer setWarBasePath(java.lang.String warBasePath)
明示的に指定しなかった場合のデフォルト値は、 "classpath://nablarch/fw/web/servlet/docroot/"
warBasePath
- このサーバにデプロイするWARのパスpublic HttpServer setWarBasePaths(java.util.List<ResourceLocator> warBasePaths)
明示的に指定しなかった場合のデフォルト値は、 "classpath://nablarch/fw/web/servlet/docroot/"
warBasePaths
- このサーバにデプロイするWARのパスpublic ResourceLocator getWarBasePath()
public HttpServer setHttpDumpEnabled(boolean enabled)
デフォルトでは無効化されている。
enabled
- HTTPダンプを有効化する場合はtrue、無効化する場合はfalseを設定する。setHttpDumpRoot(String)
public boolean isHttpDumpEnabled()
public HttpServer setHttpDumpRoot(java.lang.String path)
デフォルトでは、カレントパス直下の"http_dump"ディレクトリになる。 ダンプ出力時に当該のディレクトリが存在しなかった場合は自動的に作成される。
path
- HTTPダンプの出力先フォルダpublic java.io.File getHttpDumpRoot()
public HttpServer setHttpDumpFilePath(java.lang.String path)
path
- 出力先ファイルパスpublic java.io.File getHttpDumpFile()
public HttpServer setTempDirectory(java.lang.String path)
path
- context用の一時ディレクトリパスpublic HttpResponse handle(HttpRequest req, ExecutionContext unused)
このクラスの実装では、 引数のHTTPリクエストオブジェクトをHTTPメッセージにシリアライズし、 ローカルコネクションに送信する。 内蔵アプリケーションサーバでの処理後、返信されたHTTPレスポンスメッセージを HTTPレスポンスオブジェクトにパースし、この関数の戻り値として返す。 また、HTTPダンプ出力が有効である場合、 そのレスポンスボディの内容を所定のディレクトリに出力する。
handle
インタフェース内 Handler<HttpRequest,HttpResponse>
handle
インタフェース内 HttpRequestHandler
req
- HTTPリクエストオブジェクトunused
- サーバサイド実行コンテキストオブジェクトpublic HttpServer startLocal()
public void setDumpVariableItem(boolean dumpVariableItem)
dumpVariableItem
- dumpVariableItem ダンプHTMLへの可変項目の出力可否protected java.lang.String rewriteUriPath(java.lang.String html, HttpRequest req)
html
- HTML文字列req
- HttpRequest