4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

intra-martでテナント環境のセットアップ時にエラーが出たときの話

Posted at

今回は検証用のテナント環境を構築する時に出会ったメッセージコード「E.IWP.CONTEXT.WEB.10001」のお話です。
見る限り、公式サイトにも載っていなかったので、少しでも調査のお役に立てれば幸いです。

検証環境

  • Windows10
  • intra-mart Accel Platform 2020 spring
  • resin 4.0.64
  • im-juggling 1.0.20200401 ※リポジトリアップデート済み
  • PostgreSQL 9.3

参考サイト

エラーが起きるタイミング

テナント設定を一通り追えて、最終ステップで登録ボタンを押下後に起こります。

servererror.JPG

resinのログ(一部抜粋)

ERROR] j.c.i.s.c.w.i.ContextFilter - [E.IWP.CONTEXT.WEB.10001] Failed to start the context lifecycle.
java.lang.NullPointerException: null
        at jp.co.intra_mart.mirage.ext.dialect.IntramartDialectAutoSelector.getDialect(IntramartDialectAutoSelector.java:25)
        at jp.co.intra_mart.mirage.ext.dialect.IntramartDialectAutoSelector.getTenantDatabaseDialect(IntramartDialectAutoSelector.java:13)
        at jp.co.intra_mart.mirage.ext.session.IntramartDatabaseManagerSession.getTenantDatabaseSqlManager(IntramartDatabaseManagerSession.java:174)
        at jp.co.intra_mart.mirage.ext.dao.DAOFactory.getTenantDatabaseDAO(DAOFactory.java:96)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformationDelegateImpl.getTenantImUpdateSchemaDAO(TenantSetupInformationDelegateImpl.java:586)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformationDelegateImpl.existTable(TenantSetupInformationDelegateImpl.java:454)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformationDelegateImpl.getUpdatedSchemaVersion(TenantSetupInformationDelegateImpl.java:598)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformationDelegateImpl.getDeployedSchemaVersion(TenantSetupInformationDelegateImpl.java:488)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformationDelegateImpl.completedSetup(TenantSetupInformationDelegateImpl.java:445)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformationDelegateImpl.needSetup(TenantSetupInformationDelegateImpl.java:364)
        at jp.co.intra_mart.system.service.provider.updater.TenantSetupInformation.needSetup(TenantSetupInformation.java:76)
        at jp.co.intra_mart.system.authz.context.impl.StandardAuthzSubjectContextBuilder.needSetup(StandardAuthzSubjectContextBuilder.java:171)
        at ~省略~

原因

他のタイミングでも出るのかも分かりませんが、私の場合は

  • data-source-mapping-config.xmlをデフォルト状態で使用する。
  • テナント情報画面でdefault以外を選択。
  • テナント環境情報画面#リソース参照を誤って空欄で進めた。

が原因のようでした。

data-source-mapping-config.xml
  <tenant-data-source>
    <tenant-id>default</tenant-id>
    <resource-ref-name>java:comp/env/jdbc/default</resource-ref-name>
  </tenant-data-source>

tenant_info.JPG

tenant_env.JPG

解決策

1.検証目的などで、こだわりが無いのであればテナントIDは「default」を設定する。
2.data-source-mapping-config.xmlに対して任意のテナントID情報を追記する。

あとは、data-source-mapping-config.xmlに記載の無いテナントIDを使っても、リソース参照名を設定することで内部サーバーエラーは出ずにセットアップを完了させることが出来るようです。

おわりに

今回、とても単純な入力ミスだったのですが、その割に調査に時間が掛かってしまいました。
入力ミスで起きるExceptionはハンドリングして画面上にエラーメッセージを出しても良いかなと感じました。

今回も短いですが、以上です。

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?