碧 - 設定
各ファイルの設定内容
1.midori設定ファイル
<?xml version="1.0" encoding="UTF-8"?> <config> <rootPackage>foo.bar</rootPackage> <container>jp.fores.midori.server.container.impl.BasicSingletonContainer</container> <plugins> <plugin type="amf" class="jp.fores.midori.server.plugin.impl.AmfPlugin" /> <plugin type="java" class="jp.fores.midori.server.plugin.impl.JavaSerializePlugin" /> <plugin type="json" class="jp.fores.midori.server.plugin.impl.JsonRPCPlugin" /> <plugin type="xmlrpc" class="jp.fores.midori.server.plugin.impl.XmlRPCPlugin" /> <plugin type="axmlrpc" class="jp.fores.midori.server.plugin.impl.ApacheXmlRPCPlugin" /> <plugin type="hessian" class="jp.fores.midori.server.plugin.impl.HessianPlugin" /> <plugin type="thrift" class="jp.fores.midori.server.plugin.impl.ThriftPlugin" /> </plugins> </config>
・rootPackage
プロジェクトのルートパッケージです。
このパッケージの配下がmidoriで呼び出しできる対象になります。
・container
midoriフレームワークが利用するコンテナクラスです。
(DIコンテナを利用しない場合はBasicSingletonContainerがお勧めです。)
| クラス名 | 説明 |
|---|---|
| jp.fores.midori.server.container.impl.BasicContainer |
標準のコンテナクラスです。 毎回サービスクラスのインスタンスを生成します。 |
| jp.fores.midori.server.container.impl.BasicSingletonContainer |
標準のコンテナクラスです。 一度生成したサービスクラスのインスタンスを毎回使いまわします。 |
| jp.fores.midori.server.container.impl.GuiceContainer | Guice(http://code.google.com/p/google-guice/)と連携するコンテナクラスです。 |
| jp.fores.midori.server.container.impl.S2Container | Seasar2(http://s2container.seasar.org/2.4/ja/)と連携するコンテナクラスです。 |
| jp.fores.midori.server.container.impl.SpringContainer | Spring(http://www.springsource.org/)と連携するコンテナクラスです。 |
・plugin
各種RPC形式を利用するためのプラグイン。
| タイプ(拡張子) | クラス名 | 説明 |
|---|---|---|
| amf | jp.fores.midori.server.plugin.impl.AmfPlugin |
AMF(Actionscript Message Format)用のプラグイン。 おもにFlash、Flex、AIRなどで利用。 (詳細はhttp://en.wikipedia.org/wiki/Action_Message_Formatを参照) |
| java | jp.fores.midori.server.plugin.impl.JavaSerializePlugin |
Javaシリアライズ用のプラグイン。 Javaのjava.io.Serializableの仕組みを使ったmidoriフレームワーク独自規格のバイナリ通信。 おもにJava、Androidなどで利用。 このプラグインを使うためには、RPC対象となるメソッドの引数・戻り値ともにjava.io.Serializableインターフェースを実装している必要がある。 |
| json | jp.fores.midori.server.plugin.impl.JsonRPCPlugin |
JSON-RPC用のプラグイン。 JSONPにも対応しています。 (詳細はhttp://json-rpc.org/を参照) |
| xmlrpc | jp.fores.midori.server.plugin.impl.XmlRPCPlugin |
XML-RPC用のプラグイン。 (詳細はhttp://ja.wikipedia.org/wiki/XML-RPCを参照) |
| axmlrpc | jp.fores.midori.server.plugin.impl.ApacheXmlRPCPlugin |
拡張XML-RPC用のプラグイン。 (詳細はhttp://ws.apache.org/xmlrpc/を参照) |
| hessian | jp.fores.midori.server.plugin.impl.HessianPlugin |
Hessian用のプラグイン。 (詳細はhttp://hessian.caucho.com/を参照) |
| thrift | jp.fores.midori.server.plugin.impl.ThriftPlugin |
Thrift用のプラグイン。 (詳細はhttp://thrift.apache.org/を参照) |
2.web.xml
・filter
midoriを正常に使用するためには、以下のようにWEB-INF/web.xmlでMidoriFilterの設定を行う必要があります。
設定内容は基本的にデフォルトのまま変更する必要はないはずですが、問題が発生した場合は環境に応じて変更して下さい。
<!-- //========================================================== //フィルターの定義 //========================================================== --> <!-- 碧(midori)用のフィルター --> <filter> <filter-name>midoriFilter</filter-name> <filter-class>jp.fores.midori.server.MidoriFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>expireCache</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>requestGZip</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>responseGZip</param-name> <param-value>true</param-value> </init-param> </filter> <!-- //========================================================== //フィルターマッピングの定義 //========================================================== --> <!-- 碧(midori)用のフィルター --> <filter-mapping> <filter-name>midoriFilter</filter-name> <url-pattern>/rpc/*</url-pattern> </filter-mapping>
| param-name | param-value(例) | 説明 |
|---|---|---|
| encoding | UTF-8 |
文字エンコーディングを指定します。 JSON-RPCなどの文字列を使うRPCの場合、この設定を正しく行わないと文字化けの原因となります。 通常はUTF-8を指定します。 |
| expireCache | true |
キャッシュの破棄を行うかどうかのフラグです。 このフラグがたっている場合、レスポンスヘッダに以下の内容を出力します。
|
| requestGZip | true |
リクエストをgzip展開するかどうかのフラグです。 このフラグがたっていて、かつリクエストヘッダの「Content-Encoding」ヘッダに「gzip」という内容が含まれている場合、リクエストデータをgzip展開しつつ読み込みます。 それ以外の場合は、リクエストデータを普通に読み込みます。 通常、クライアントからサーバーに送られるリクエストデータがgzip圧縮されていることはほぼありませんが、gzip圧縮を行える特殊なクライアントを使った場合は、この機能を利用することができます。 なお、GAEのようにリクエストのgzip展開が自動的に行われてしまう環境にも対応できるようになっています。 この機能を有効にすることにより、通信量を軽減することができますが、反面gzipの圧縮・展開処理のためクライアント・サーバー側ともにCPU使用量は増えるので注意して下さい。 |
| responseGZip | true |
レスポンスをgzip圧縮するかどうかのフラグです。 このフラグがたっていて、かつリクエストヘッダの「Accept-Encoding」ヘッダに「gzip」という内容が含まれている場合、レスポンスデータをgzip圧縮しつつ出力します。 それ以外の場合は、レスポンスデータを普通に出力します。 なお、GAEのようにレスポンスのgzip圧縮が自動的に行われてしまう環境にも対応できるようになっています。 この機能を有効にすることにより、通信量を軽減することができますが、反面gzipの圧縮・展開処理のためクライアント・サーバー側ともにCPU使用量は増えるので注意して下さい。 |
・servlet
midoriを正常に使用するためには、以下のようにWEB-INF/web.xmlでRPCServletの設定を行う必要があります。
設定内容は基本的にデフォルトのまま変更する必要はないはずですが、問題が発生した場合は環境に応じて変更して下さい。
<!-- //========================================================== //サーブレットの定義 //========================================================== --> <!-- RPC用のサーブレット --> <servlet> <servlet-name>RPCServlet</servlet-name> <servlet-class>jp.fores.midori.server.RPCServlet</servlet-class> <!-- 設定ファイル --> <init-param> <param-name>configFile</param-name> <param-value>midori.xml</param-value> </init-param> <!-- リスティング機能を有効にするかどうかのフラグ --> <init-param> <param-name>listing</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- //========================================================== //サーブレットマッピングの定義 //========================================================== --> <!-- RPC用のサーブレット --> <servlet-mapping> <servlet-name>RPCServlet</servlet-name> <url-pattern>/rpc/*</url-pattern> </servlet-mapping>
| param-name | param-value(例) | 説明 |
|---|---|---|
| configFile | midori.xml | midoriの設定ファイル名です。 |
| listing | true | midoriの登録情報を一覧表示するかどうかのフラグです。 |
