0
0

More than 3 years have passed since last update.

Activiti6のサンプルをローカルで動かす

Posted at

activitiのサンプルをローカルで動かし使ってみて、BPM及びactivitiの動作を一通り把握したい。
activiti7はクラウドを前提としているため、ハードルが高い。なので、まずactiviti6から。

activiti6をとりあえず動かす

activiti6ダウンロード

下記リンクからダウンロードする:
https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip
zipファイルを解凍したら、以下の3フォルダに分けられている:

  • database: 各種データベース環境作成・メンテ用sql一式
  • libs: activiti engine等、activitiのcoreライブラリ一式
  • wars: サンプルwarファイル三つ

tomcat実行環境準備

tomcatの実行環境は、既に持っているため、ここで割愛。

activiti実行

上記warファイルをtomcatのwebapps配下コピーし、tomcat配下binにあるstartupを実行する。

下記URLにアクセスし、ログイン画面が出ればOK。
http://localhost:8080/activiti-app

admin/testでログインできる。

これで、activitiはメモリ上のH2データベースを利用して動作するので、tomcatを停止すると、作成したすべての情報が消える。
なので、ローカルのPostgresと接続して、データが消えないようにしたい。

activitiをpostgresと接続する

接続方法は2つ。どちらもwebapps/activiti-app/WEB-INF/classes/META-INF/activiti-app/activiti-app.propertiesの編集が必要。

jdbcドライバを直接利用して接続

上記activiti-app.propertiesファイル内の以下の設定を行う:

activiti-app.properties
datasource.driver=org.postgresql.Driver
datasource.url=jdbc:postgresql://localhost:5432/準備したDB名
datasource.username=準備したユーザ名
datasource.password=準備したユーザのパスワード
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

urlは自分の環境に適宜合わせること

JNDI Datasource経由して接続

activiti-app.propertiesファイル内jdbc関連をコメントアウトし、以下の設定を追加する:

activiti-app.properties
datasource.jndi.name=jdbc/activitiDB
datasource.jndi.resourceRef=true

{tomcat_home}/conf/Catalina/localhostactiviti-app.xmlファイルを以下の内容で作成する:

activiti-app.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/activiti-app">
    <Resource auth="Container"
    name="jdbc/activitiDB"
    type="javax.sql.DataSource"
    description="JDBC DataSource"
    url="jdbc:postgresql://localhost:5432/準備したDB名"
    driverClassName="org.postgresql.Driver"
    username="準備したユーザ名"
    password="準備したユーザのパスワード"
    defaultAutoCommit="false"
    initialSize="5"
    maxWait="5000"
    maxActive="120"
    maxIdle="5"/>
</Context>

JNDI Datasourceを経由するいいところは、データベース接続先が変わっても、warファイルの作成し直すが必要ないってことかな。

データ構造を準備する

postgresの管理ツールまたはpsqlでactiviti用ユーザとそのデータベースを作成した後、activitiが使うテーブル一式の作成は必要。

本来ならば、activitiのProcessEngineConfiguration初期化時のsetDatabaseSchemaUpdatetrueに設定すれば、自動的にテーブルを作成してくれるはずが、なぜかうまく行かない。

テーブル作成は、activiti解凍フォルダdatabase/create内の以下sqlを利用する:

  • activiti.postgres.create.engine.sql
  • activiti.postgres.create.history.sql
  • activiti.postgres.create.identity.sql

tomcat再起動

tomcatから特にエラーが出ていなければ、activitiがpostgresのDBを利用することとなる。
activitiにログインして適当ユーザを作成し、データベースのact_id_userにそのユーザ情報が追加されればOK。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0