About

Documentation

プロジェクト文書

Built by Maven

S2RMI-Server

概要

S2RMIを利用したアプリケーションをサーバプロセスとして起動するためにS2RMI-Serverを利用することができます.

S2RMI-Serverは実行可能Jarを提供します.このJarファイルは配布ファイル中の以下のディレクトリにあります.

+- s2rmi-server/
   +- lib/
      +- s2rmi-server-x.x.x.jar

ディレクトリ構成

S2RMIサーバプロセスを実行する環境として,以下のようなディレクトリ構成を想定しています.

+- <base>/
   +- classes/
   |  +- xxx.class
   |  +- ...
   |
   +- config/
   |  +- xxx.dicon
   |  +- ...
   |
   +- lib/
      +- s2rmi-server-x.x.x.jar
      +- s2rmi-x.x.x.jar
      +- s2-framework-x.x.x.jar
      +- s2-extension-x.x.x.jar
      +- ...

S2RMIサーバプロセスのベースディレクトリには次のサブディレクトリを配置します.

classes
アプリケーションのクラスファイルを配置します.
config
diconファイル等のリソースを配置します.
lib
S2RMIサーバプロセスの実行に必要なJarファイルを配置します.

コマンドライン

S2RMI-Serverを使ってサーバプロセスを起動するにはコマンドラインから次のように指定します.

java -jar lib/s2rmi-server-x.x.x.jar [--classpath pathlist] [--dicon diconfile]

標準クラスパス

S2RMI-Serverは自身の実行可能Jarファイルと同じディレクトリにあるJarファイルを自動的にクラスパスに設定します. 先のディレクトリ構成では,lib以下にあるJarファイルが全て自動的にクラスパスに設定されます.

Jarファイルがどのような順序でクラスパスに設定されるかは不定です.

実行可能JarファイルではCLASSPATH環境変数は無効であることに注意してください.

オプション引数

コマンドライン引数では次のオプションを指定することができます.

--classpath pathlist
追加のクラスパスリストを指定します.

クラスパスリストは複数のパス (ファイルまたはディレクトリ) をプラットフォーム固有のパス区切り文字 (Windowsではセミコロン(;),UNIX/Linuxではコロン(:)になります) で区切って指定することができます.

指定されたパスがディレクトリで,その直下に一つ以上のJarファイルが存在する場合は, そのディレクトリ直下に存在する全てのJarファイルがクラスパスに追加されます.
指定されたパスがディレクトリで,その直下にJarファイルが存在しなければ,そのディレクトリが クラスパスに追加されます.
指定されたパスがJarファイルであれば,そのファイルがクラスパスに追加されます.

先のディレクトリ構成では,次のようにconfigclassesを指定します.

java -jar lib/s2rmi-server-x.x.x.jar --classpath config:classes

追加のクラスパスリストは標準クラスパスの前に設定されます. 上のように指定した場合,クラスパスの順序は次のようになります.

  1. config
  2. classes
  3. lib/xxx.jar
  4. lib/yyy.jar
  5. lib/...
--dicon diconfile
アプリケーションのルートとなるdiconファイルを指定します. 省略するとapp.diconになります.

S2RMIサーバプロセスの停止

S2RMIサーバプロセスは複数の方法で停止することができます.

Ctrl+Cによる停止
S2RMIサーバプロセスをコンソールから起動した場合にはCtrl+Cにより プロセスを停止することができます.
シグナルによる停止
UNIX/LinuxではS2RMIサーバプロセスにシグナルを送ることによってプロセスを停止することができます.
kill pid
RMI呼び出しによる停止
S2RMIの提供するコンポーネントをRMIで呼び出すことによってプロセスを停止することができます.

クライアント側で次のコンポーネントをS2コンテナから取得あるいはS2コンテナにインジェクションしてもらい, stop()メソッドを呼び出します.

  • org.seasar.remoting.rmi.service.S2RmiServiceクラス

このコンポーネントはSMART deployでは自動登録されます.

SMART deployを使用しない場合は明示的に登録してください.