技術情報

「Hello World!」プラグインを作成する方法

-- 2013.07.24 GroupSession Version4.1.4 --

はじめに

GroupSessionは新機能をプラグインとして追加することができます。

ここでは画面に「Hello World!」と表示する簡単なプラグインの作成手順を説明します。


前提条件

このドキュメントは、Java、Apache Struts、Jakarta Antについての知識がある事を前提とします。


作成するファイルの一覧

作成するファイルの一覧です。

メニューアイコン用画像

下記の手順2で作成します。

ファイルmenu_icon_single.gif

ソースファイル

下記の手順3で作成します。

ファイルHelloWorldAction.java

ファイルHelloWorldForm.java

JSPファイル

下記の手順4で作成します。

ファイルhelloworld.jsp

struts設定ファイル

下記の手順5で作成します。

ファイルstruts_config.xml

プラグイン設定ファイル

下記の手順6で作成します。

ファイルplugin.xml

build設定ファイル

下記の手順7で作成します。

ファイルbuild.xml

作業の手順

新規プラグインの作成手順を説明します。


手順1 プラグインIDを決める

プラグインIDとは、GroupSessionからプラグインを識別するために使用する名前です。

使用する文字は必ず半角英数字、文字数は10文字以内にしてください。

日本語や記号・半角カナなどを使用、または10文字を超えると、追加したプラグインが

認識できない場合があります。


ここでは例として、プラグインIDは「newplugin」とします。


手順2 メニューアイコン用画像を作成する

メニューアイコンには画像が必要です。

ファイル名は下記の固定ファイル名、画像のサイズは全て25px × 25pxで作成してください。

  サンプル画像 固定ファイル名 説明
メニューアイコン menu_icon_single.gif menu_icon_single.gif ヘッダのメニューに
表示されるアイコン

メニューアイコン用画像をディレクトリに配置

作成したメニューアイコン用画像を、GroupSessionをインストールしたgsessionディレクトリの中に

配置します。

Windowsでインストールガイドに従ってGroupSessionをインストールした場合

C:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\gsession

となります。

以降、GroupSessionをインストールしたgsessionディレクトリは「\gsession」と表記します。


\gsession

にプラグインディレクトリを作成します。

ディレクトリ名は手順1で決めたプラグインIDと同じにします。

ここでは「newplugin」になります。


\gsession\newplugin

に画像用ディレクトリを作成します。

ディレクトリ名は固定で「images」としてください。


\gsession\newplugin\images

に作成したメニューアイコン用画像をコピーします。


下記の様な階層構造になります。


ディレクトリgsession

ディレクトリnewplugin (手順1で決めたプラグインID)

ディレクトリimages

ファイルmenu_icon_single.gif

手順3 ソースファイルを作成する

ソースファイルを作成します。

ActionクラスとFormクラスが最低限必要になります。

ここでは例として、「HelloWorldAction.java」と「HelloWorldForm.java」を作成します。


Actionクラスを作成する場合、

必ずjp.groupsession.v2.struts.AbstractGsActionを継承してください。

HelloWorldAction.java

package jp.groupsession.v2.newplugin.helloworld;

  import java.sql.Connection;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import jp.groupsession.v2.struts.AbstractGsAction;
  import org.apache.struts.action.ActionForm;
  import org.apache.struts.action.ActionForward;
  import org.apache.struts.action.ActionMapping;

  /**
   * <br>[機  能] HelloWorldのアクションクラス
   * <br>[解  説]
   * <br>[備  考]
   *
   * @author JTS
   */
  public class HelloWorldAction extends AbstractGsAction {

      /**
       * <br>[機  能] アクションを実行する
       * <br>[解  説]
       * <br>[備  考]
       * @param map ActionMapping
       * @param form ActionForm
       * @param req HttpServletRequest
       * @param res HttpServletResponse
       * @param con DB Connection
       * @return ActionForward
       * @throws Exception 実行時例外
       */
      public ActionForward executeAction(ActionMapping map,
                                          ActionForm form,
                                          HttpServletRequest req,
                                          HttpServletResponse res,
                                          Connection con)
          throws Exception {

          return map.getInputForward();
      }
  }
    

Formクラスを作成する場合、

必ずjp.groupsession.v2.struts.AbstractGsFormを継承してください。

HelloWorldForm.java

package jp.groupsession.v2.newplugin.helloworld;

  import jp.groupsession.v2.struts.AbstractGsForm;

  /**
   * <br>[機  能] HelloWorldのフォームクラス
   * <br>[解  説]
   * <br>[備  考]
   *
   * @author JTS
   */
  public class HelloWorldForm extends AbstractGsForm {
  }
    

ソースファイルをディレクトリに配置

作成したソースファイルを、以下のディレクトリに配置します。


\gsession\WEB-INF\plugin

にプラグインディレクトリを作成します。

ディレクトリ名は手順1で決めたプラグインIDと同じにします。

ここでは「newplugin」になります。


\gsession\WEB-INF\plugin\newplugin

にソースディレクトリを作成します。

ディレクトリ名は固定で「src」としてください。


\gsession\WEB-INF\plugin\newplugin\src

パッケージの階層に合わせて、ディレクトリ階層を作成します。

ここでは「\jp\groupsession\v2\newplugin\helloworld」になります。


\gsession\WEB-INF\plugin\newplugin\src\jp\groupsession\v2

\newplugin\helloworld

に作成したソースファイルをコピーします。


下記の様な階層構造になります。


ディレクトリgsession

ディレクトリWEB-INF

ディレクトリplugin

ディレクトリnewplugin (手順1で決めたプラグインID)

ディレクトリsrc

ディレクトリjp (以下パッケージに対応するディレクトリ)

ディレクトリgroupsession

ディレクトリv2 

ディレクトリnewplugin 

ディレクトリhelloworld 

ファイルHelloWorldAction.java

ファイルHelloWorldForm.java

手順4 JSPファイルを作成する

画面への表示に使用するJSPファイルを作成します。

ファイル名は「helloworld.jsp」とします。


helloworld.jsp

<%@ page pageEncoding="Windows-31J"
    contentType="text/html; charset=UTF-8"%>
  <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
  <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
  <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
  <%@ taglib uri="http://struts.apache.org/tags-nested" prefix="nested" %>


  <html:html>
  <head>
  <title>[GroupSession] HelloWorld</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <link rel=stylesheet href='../common/css/default.css' type='text/css'>
  </head>

  <body class="body_03">
  <html:form action="/newplugin/helloworld">

  <%@ include file="/WEB-INF/plugin/common/jsp/header001.jsp" %>

  <table width="100%">
  <tr>
  <td width="100%" align="center">
    <p>Hello World!</p>
  </td>
  </tr>
  </table>

  <%@ include file="/WEB-INF/plugin/common/jsp/footer001.jsp" %>

  </html:form>
  </body>
  </html:html>
    

※1行目の記述、

<%@ page pageEncoding="Windows-31J"
    contentType="text/html; charset=UTF-8"%>
    

およびHTMLヘッダに記述する文字コードの設定はUTF-8にしてください。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    

JSPファイルをディレクトリに配置

作成したJSPファイルを、以下のディレクトリに配置します。


\gsession\WEB-INF\plugin\newplugin

にJSPディレクトリを作成します。

ディレクトリ名は固定で「jsp」としてください。


\gsession\WEB-INF\plugin\newplugin\jsp

に作成したJSPファイルをコピーします。


下記の様な階層構造になります。


ディレクトリgsession

ディレクトリWEB-INF

ディレクトリplugin

ディレクトリnewplugin (手順1で決めたプラグインID)

ディレクトリjsp

ファイルhelloworld.jsp

手順5 struts設定ファイルを作成する

struts設定ファイルを作成します。

内容は下記の様に記述し、ファイル名は固定で「struts_config.xml」としてください。

赤字の部分を、作成したソースやプラグイン情報に合わせて書き替えます。

struts_config.xml

<?xml version="1.0" encoding="shift_jis" ?>

 

<!DOCTYPE struts-config PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

 

<struts-config>

 

<!-- ========== Form Bean Definitions =============== -->

<form-beans>

 

<!-- typeには作成したFormクラスをパッケージ名から記述します -->

<form-bean

name="helloworldForm"

type="jp.groupsession.v2.newplugin.helloworld.HelloWorldForm" />

 

</form-beans>

 

<!-- ========== Action Mapping Definitions ============= -->

<action-mappings>

 

<!-- HelloWorld -->

<!-- nameにはform-beanに記述したnameと同じ値を記述します -->

<!-- inputには作成したJSPファイルへのパスを記述します -->

<!-- typeには作成したActionクラスをパッケージ名から記述します -->

<action

name="helloworldForm"

path="/newplugin/helloworld"

scope="request"

input="/WEB-INF/plugin/newplugin/jsp/helloworld.jsp"

validate="false"

type="jp.groupsession.v2.newplugin.helloworld.HelloWorldAction">

</action>

 

</action-mappings>

 

</struts-config>

※1行目の記述には文字コードの設定部分があります。

<?xml version="1.0" encoding="Shift_jis" ?>

上記の様にShift_jisとした場合、設定ファイルを保存する時の文字コードは必ずShift_jisに設定してください。

設定ファイル1行目に記述した文字コードと、ファイル自体の文字コードが異なる場合、

追加したプラグインが正常に動作しない場合があります。



struts設定ファイルをディレクトリに配置

作成したstruts設定ファイルを、以下のディレクトリに配置します。


\gsession\WEB-INF\plugin\newplugin

に作成したstruts設定ファイルをコピーします。


下記の様な階層構造になります。


ディレクトリgsession

ディレクトリWEB-INF

ディレクトリplugin

ディレクトリnewplugin (手順1で決めたプラグインID)

ファイルstruts_config.xml

手順6 プラグイン設定ファイルを作成する

プラグイン設定ファイルを作成します。

内容は下記の様に記述し、ファイル名は固定で「plugin.xml」としてください。

赤字の部分をプラグイン情報に合わせて書き替えます。

plugin.xml

<?xml version="1.0" encoding="Shift_jis" ?>

 

<plugin>

 

<!-- プラグインID -->

<!-- 手順1で決めたプラグインIDを記述します -->

<id>newplugin</id>

 

<!-- 名称 -->

<!-- プラグインの名称を記述します -->

<name>ニュープラグイン</name>

 

<!-- 説明 -->

<!-- プラグインの説明を記述します -->

<description>新しいプラグインです。</description>

 

<!-- トップメニューの情報を記述する 記述しない場合はメニューに表示しない -->

<topmenu-info>

<!-- メニューへの表示/非表示 -->

<!-- プラグインをメニューへ表示する場合は「true」と記述します -->

<view>true</view>

<!-- メニューアイコンクリック時にフレーム内に表示するURLを記述します -->

<!-- struts_config.xmlのactionのpathの値を元に、下記の様に記述 -->

<url>../newplugin/helloworld.do</url>

</topmenu-info>

 

<!-- ヘルプ情報を設定する。 -->

<help-info>

<!-- ヘルプの表示/非表示 -->

<view>false</view>

</help-info>

 

</plugin>

※1行目の記述には文字コードの設定部分があります。

<?xml version="1.0" encoding="Shift_jis" ?>

上記の様にShift_jisとした場合、設定ファイルを保存する時の文字コードは必ずShift_jisに設定してください。

設定ファイル1行目に記述した文字コードと、ファイル自体の文字コードが異なる場合、

追加したプラグインが認識できない、またはプラグインが正常に動作しない場合があります。



プラグイン設定ファイルをディレクトリに配置

作成したプラグイン設定ファイルを、以下のディレクトリに配置します。


\gsession\WEB-INF\plugin\newplugin

に作成したプラグイン設定ファイルをコピーします。


下記の様な階層構造になります。


ディレクトリgsession

ディレクトリWEB-INF

ディレクトリplugin

ディレクトリnewplugin (手順1で決めたプラグインID)

ファイルplugin.xml

手順7 build設定ファイルを作成する

GroupSessionでは、ソースのコンパイルにJakarta Antを使用します。

build設定ファイルとは、その際の設定を記述するファイルです。

ここでは、コンパイルおよび、コンパイル時に作成されたファイル・ディレクトリの削除が

行えるように設定します。


内容は下記の様に記述し、ファイル名は固定で「build.xml」としてください。

build.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--

====================================================

GroupSession newplugin

共通クラスのビルドが完了していること

create JTS

====================================================

-->

 

<project name="GroupSession newplugin" default="build" basedir=".">

<!--

====================================================

Properties: 変数の定義

====================================================

-->

 

<!-- ディレクトリ名の定義 -->

<property name="SRC.DIR" value="./src" />

<property name="PLGIN_CLS.DIR" value="./classes" />

 

<!-- Compile Options -->

<property name="BLD.TARGET" value="1.6" />

<property name="DEBUG" value="yes" />

<property name="DEPRECATION" value="true" />

<property name="SRC.ENC" value="Windows-31J" />

 

<!-- ClassPath -->

<path id="app_classpath">

 

<!-- OSのクラスパス -->

<pathelement path="${classpath}" />

 

<!-- LIBディレクトリ -->

<!-- アプリケーション共通lib -->

<fileset dir="../../../../../lib">

<include name="**/*.jar"/>

<include name="**/*.zip"/>

</fileset>

<fileset dir="../../../WEB-INF/lib">

<include name="**/*.jar"/>

<include name="**/*.zip"/>

</fileset>

<!-- アプリケーション 共通クラス -->

<pathelement location="../../../WEB-INF/classes" />

</path>

 

<!--

====================================================

INIT: 初期化

====================================================

-->

<target name="init"

description="init"

>

<tstamp>

<format property="YMDHMS"

pattern="yyyy.MM.dd hh:mm:ss"

/>

</tstamp>

<echo message="Project Name = ${ant.project.name}" />

<echo message="Project Root = ${basedir}" />

<echo message="JDK Version = ${ant.java.version}" />

<echo message="Building Time = ${YMDHMS}" />

<echo message="" />

</target>

 

<!--

====================================================

BUILD: Classファイルの作成(コンパイル)

====================================================

-->

<target name="build">

<mkdir dir="${PLGIN_CLS.DIR}" />

 

<javac

classpathref = "app_classpath"

destdir = "${PLGIN_CLS.DIR}"

target = "${BLD.TARGET}"

debug = "${DEBUG}"

deprecation = "${DEPRECATION}"

encoding = "${SRC.ENC}">

<src path="${SRC.DIR}" />

<compilerarg value="-Xlint:unchecked" />

<include name="**/*.java"/>

</javac>

 

</target>

 

<!--

====================================================

CLEAN:作成したClassファイルをディレクトリごと削除

====================================================

-->

<target name="clean">

<antcall target="init" />

<delete dir="${PLGIN_CLS.DIR}" />

</target>

</project>

※1行目の記述には文字コードの設定部分があります。

<?xml version="1.0" encoding="UTF-8" ?>

上記の様にUTF-8とした場合、設定ファイルを保存する時の文字コードは必ずUTF-8に設定してください。

設定ファイル1行目に記述した文字コードと、ファイル自体の文字コードが異なる場合、

手順9で行うコンパイルが正常に動作しない場合があります。


※アプリケーション共通libにはTomcatのlibディレクトリを指定してください。

 例: Tomcatインストールディレクトリ: C:\Tomcat

<!-- アプリケーション共通lib -->

<fileset dir="C:/Tomcat/lib">



build設定ファイルをディレクトリに配置

作成したbuild設定ファイルを、以下のディレクトリに配置します。


\gsession\WEB-INF\plugin\newplugin

に作成したbuild設定ファイルをコピーします。


下記の様な階層構造になります。


ディレクトリgsession

ディレクトリWEB-INF

ディレクトリplugin

ディレクトリnewplugin (手順1で決めたプラグインID)

ファイルbuild.xml

手順8 各ファイルのディレクトリ階層を確認する

以上の全てのファイルを配置すると、このような階層構造になります。


ディレクトリgsession

ディレクトリnewplugin

ディレクトリimages

ファイルmenu_icon_single.gif

ディレクトリWEB-INF

ディレクトリplugin

ディレクトリnewplugin

ファイルstruts_config.xml

ファイルplugin.xml

ファイルbuild.xml

ディレクトリjsp

ファイルhelloworld.jsp

ディレクトリsrc

ディレクトリjp

ディレクトリgroupsession

ディレクトリv2

ディレクトリnewplugin

ディレクトリhelloworld

ファイルHelloWorldAction.java

ファイルHelloWorldForm.java

手順9 ソースコードをコンパイルする

作成したソースコードをコンパイルします。


コマンドライン上で、build.xmlを配置したディレクトリへ移動します。

この例では下記のディレクトリになります。

\gsession\WEB-INF\plugin\newplugin


コンパイルのコマンドを実行します。

コンパイル方法については GroupSessionをビルドする を参照してください。


手順10 tomcatを再起動して動作を確認する

tomcatを再起動することで設定が反映されます。


手順2で作成したプラグインアイコンがメニューに追加されます。

プラグイン追加完了後



プラグインアイコンをクリックすると、「Hello World!」のページがフレーム内に表示されます。

Hello World!



メイン > 個人設定 > メニュー項目の設定にもプラグインが追加されるので、表示順の設定も可能です。

メニュー項目の設定


サンプルをダウンロード

手順2〜8で作成するファイルとディレクトリ構成のサンプルを、こちらからダウンロードできます。

→ サンプルをダウンロード


1) zipファイルを解凍後、「plugin_sample」ディレクトリの下に「gsession」ディレクトリができます。

2) GroupSessionをインストールしたgsessionディレクトリに、
   解凍後の「gsession」ディレクトリを上書きします。

3) 「手順9 ソースコードをコンパイルする」 に従ってコンパイルを行います。

4) tomcatを再起動すると上記の「Hello World!」プラグインが追加されます。


Copyright 日本トータルシステム株式会社