QuestionServletのインストール


インストール

  1. ApacheJServ環境でのインストール方法です。
  2. qserv〜.jarをjar -xf qserv〜.jarで展開します。
  3. 各ディレクトリを(必要とあらば)適当な個所に移動します。
    最低限publicディレクトリの内容は、Webの公開ディレクトリに移動する必要があります。
    lib Servletを含むquestion.jarファイル及び、ライブラリであるsktextformatter.jar/skutility.jar/skservlet.jarがあります。
    public Webの公開ディレクトリに配置するべきJavaScript/画像ファイルがあります。
    question 質問集XMLファイル/Question Servletのpropertiesファイルのサンプルと、質問集サンプルファイル、そしてQuestionServletが使用するリソースファイルとテンプレートファイルです。
    src ソースファイルです。cygwin環境でコンパイル出来ます。
    ソースファイルはShift-JISコメントです。
  4. zone.propertiesを編集します。
    必要なキーを以下に記します。
    Key Value Sample
    repositories 展開したlibディレクトリにあるjarファイルを指定します。 repositories=/usr/local/qserv/lib/question.jar
    repositories=/usr/local/qserv/lib/sktextformatter.jar
    repositories=/usr/local/qserv/lib/skutility.jar
    repositories=/usr/local/qserv/lib/skservlet.jar
    repositories=/usr/local/qserv/lib/jaxp.jar
    repositories=/usr/local/qserv/lib/parser.jar
    servlet.question.code Question Servletのエイリアスを定義します。 com.sk_jp.servlet.question.Question
    servlet.question.initArgs propertiesキーに対して、propertiesファイルのパスを指示します。 properties=/usr/local/qserv/question/question.properties
    servlet.dataentry.code アンケート集計Servletのエイリアスを定義します。アンケート集計を行わない場合は、以下は不要です。 com.sk_jp.servlet.question.DataEntry
    servlet.extract.code アンケート集計結果抽出Servletのエイリアスを定義します。 com.sk_jp.servlet.question.Extract

    要するに以下のようにしてください。

    repositories=/usr/local/qserv/lib/question.jar
    repositories=/usr/local/qserv/lib/sktextformatter.jar
    repositories=/usr/local/qserv/lib/skutility.jar
    repositories=/usr/local/qserv/lib/skservlet.jar
    repositories=/usr/local/qserv/lib/jaxp.jar
    repositories=/usr/local/qserv/lib/parser.jar
    # ※注※
    servlet.question.code=com.sk_jp.servlet.question.Question
    servlet.question.initArgs=properties=/usr/local/qserv/question/question.properties
    # ※注2※
    servlet.com.sk_jp.servlet.question.Question.initArgs=properties=/usr/local/qserv/question/question.properties
    servlet.dataentry.code=com.sk_jp.servlet.question.DataEntry
    servlet.extract.code=com.sk_jp.servlet.question.Extract

    注:question.jarにはmanifestで残りの3つのjarを指定しているにもかかわらず、ApacheJServでは上記のように全てのjarをrepositoriesに記述しないとクラスを見つけてくれません・・・。
    これはJServのバグなんでしょうか?JDK1.2のダウンロード型拡張機能機構に対応していないようです。

    注2:initArgsはエイリアス毎に独立しているようです。現状、プログラム内からcom.sk_jp.servlet.question.Questionに対してリダイレクトを行っているため、そちらにも同じinitArgsを指定してやらないと動いてくれません!!
    (Apache JServ 1.0での現象)

    ※エイリアス名は自由に決めてかまいません。但し、"dataentry"は質問集XMLファイル内から指定されるものですので、変更する場合はXMLファイルの方もそれに合わせる必要があります。
  5. question.propertiesファイルを編集します。
    取り敢えずサンプルとして添付されている、question.propertiesを見て必要とあらば変更してください。
  6. http://host/servlets/question?file=servlet/env.xml等とすれば起動します。
    アンケート集計の場合、集計結果を見る場合は、
    http://host/servlets/extract?file=servlet/env.xmlのように指定します。

問題/不明点はshin@sk-jp.comへよろしくお願いします。
まだ記述も甘いことですし。