読者です 読者をやめる 読者になる 読者になる

Wicketの起動モードとか

2種類の起動モードがあります。

  • Development: 開発モード
  • Deployment: 運用モード

デフォルトで何にも設定しないとDevelopmentで起動されます。
こんなメッセージがでてたらDevelopmentです。

******************************************************************** 
*** WARNING: Wicket is running in DEVELOPMENT mode.              *** 
***                               ^^^^^^^^^^^                    *** 
*** Do NOT deploy to your live server(s) without changing this.  *** 
*** See Application#getConfigurationType() for more information. *** 
******************************************************************** 

簡単に特徴

Development
Deployment

設定方法とか

設定方法はいくつかあります。私が知っているのは4通り。好きなの選べば良いと思います。

javaの起動オブションで設定する
java -Dwicket.configuration=deployment
filterのinitパラメータで設定する
<filter> 
    ....
    <init-param> 
        <param-name>configuration</param-name> 
        <param-value>deployment</param-value> 
    </init-param> 
</filter>
contextのinitパラメータで設定する
<context-param> 
    <param-name>configuration</param-name> 
    <param-value>deployment</param-value> 
</context-param> 
WebApplicationの継承クラスで設定する
public class WicketApplication extends WebApplication {
    ....
    @Override
    public String getConfigurationType() {
        return WebApplication.DEPLOYMENT;
    }
    ....
}

大体こんな感じです。
全然Development、Deploymentでパフォーマンスが違うので、運用の時はちゃんとDeploymentで起動しましょう。

ちなみにWicket-jaのソースはこんな感じになってる。

    @Override
    public String getConfigurationType() {
        //filterのinit-parameterでconfigurationに「development」と指定したときだけ、developmentモードで起動します。
        //それ以外のケースでは常にdeploymentモードで起動します。
        String configuration = this.getWicketFilter().getFilterConfig().getInitParameter("configuration");
        if (configuration != null && configuration.equalsIgnoreCase(WebApplication.DEVELOPMENT)) {
            return WebApplication.DEVELOPMENT;
        }
        return WebApplication.DEPLOYMENT;
    }

デフォルトがdeploymentで起動するような作りになってますね。ソースはこのへんで見れますので参考にすると良いかもしれません。